CN104598241A - 一种窗口监控方法及系统 - Google Patents
一种窗口监控方法及系统 Download PDFInfo
- Publication number
- CN104598241A CN104598241A CN201510040684.2A CN201510040684A CN104598241A CN 104598241 A CN104598241 A CN 104598241A CN 201510040684 A CN201510040684 A CN 201510040684A CN 104598241 A CN104598241 A CN 104598241A
- Authority
- CN
- China
- Prior art keywords
- window
- response message
- time
- state
- management table
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Measuring And Recording Apparatus For Diagnosis (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种窗口监控方法及系统。所述方法包括:S1:向窗口管理表中记录的窗口发送心跳消息;S2:判断接收所述窗口的应答消息是否超时;S3:应答消息未超时,则将所述应答消息未超时的窗口设置为第一状态;否则根据全局标识查询所述应答消息超时的窗口是否存在;S4:在查询结果为否时,在所述窗口管理表中删除所述应答消息超时的窗口的记录;为是时,将所述应答消息超时的窗口设置为第二状态,并发送窗口关闭指令;在所述第二状态的窗口在限时关闭时间内未关闭窗口时,强行关闭该窗口。利用本申请实施例,可以及时、准确的发现异常窗口并做出相应处理,提高系统可靠性。
Description
技术领域
本申请属于计算机信息处理技术领域,尤其涉及一种窗口监控方法及系统。
背景技术
在石油勘探地震数据处理中,常常需要多个不同的子窗口展示地震数据的不同地质特性或者不同的观察角度,因此,在地震数据处理时,尤其是大数据量地震数据经常面临几十甚至更多的窗口。
在地震数据处理中,一般将属于一个勘探区域或者一次勘探采集的一组相互关联的数据定义为一个工区数据,包括测线、井曲线、层位、地震道等。在对地震数据数据处理时,通常是对不同的工区数据分布进行分析处理。一般一个工区数据在处理时对应一个主窗口。由于工区数据查看方式不同、展示的数据维数不同、显示剖面不同等等,通常在一个工区数据主窗口下可以建立多个子窗口进行地质其他特性的分析处理。由于数据处理系统存在大量窗口进程,导致系统负荷加重,经常出现窗口卡死、无响应、意外退出等异常现象,大大降低了数据处理系统的可用性和可靠性。
在面临多窗口的地震数据处理系统时,现有中常使用的方法包括作业人员认为观察窗口状态是否活动,或者通过系统进程查看窗口是否存活等,在系统运行时,一些卡死、无响应的窗口经常检测不到,浪费系统资源,而另一些当前存活但正在忙碌的窗口被当作卡死而被误关闭,引起操作失误。现有技术中对窗口运行状态的监控方法判断不够准确、处理不够及时,降低了数据处理系统使用的可靠性和系统资源使用率。
发明内容
本申请目的在于提供一种窗口监控方法及系统,可以从与窗口的消息交互中判断设置窗口的运行状态,对符合预置条件的窗口进行相应的处理,可以提供数据处理系统的可靠性,节约系统资源。
本申请提供的一种窗口监控方法及系统是这样实现的:
一种窗口监控方法,所述方法包括:
S1:向窗口管理表中记录的窗口发送心跳消息;
S2:监听所述窗口基于所述接收的心跳消息发送的应答消息,判断接收所述窗口的应答消息是否超时;
S3:如果所述应答消息未超时,则在所述窗口管理表中将所述应答消息未超时的窗口设置为第一状态;
否则,获取应答消息超时的窗口的全局标识,并根据所述全局标识查询所述应答消息超时的窗口是否存在;
S4:在所述查询结果为否时,在所述窗口管理表中删除所述应答消息超时的窗口的记录;
在所述查询结果为所述应答消息超时的窗口存在时,在所述窗口管理表中将所述应答消息超时的窗口设置为第二状态,向所述第二状态的窗口发送窗口关闭指令;
如果所述第二状态的窗口在限时关闭时间内未关闭窗口,向所述第二状态的窗口发送窗口强行关闭指令。
优选的实施例中,所述方法还包括:
判断所述应答消息超时的窗口是否为主窗口,如果是,则查询所述主窗口所在的窗口管理表中子窗口记录数是否为零;
在查询所述子窗口记录数据为零时,向所述主窗口发送窗口关闭指令并注销所述应答消息超时的主窗口所在的窗口管理表。
另一种优选的实施例中,所述方法还包括:
接收所述窗口发送的忙碌标识消息,提取所述忙碌标识消息中的忙碌时间;
在所述窗口管理表中将发送所述忙碌消息的窗口设置为第四状态,并在所述忙碌时间内停止向所述发送忙碌消息的窗口发送心跳消息。
一种窗口监控系统,所述系统包括:
心跳循环单元,用于基于窗口管理表中的记录向窗口发送心跳消息;
应答接收模块,用于监听所述窗口发送的应答消息,并判断接收所述窗口的应答消息是否超时;如果所述应答消息未超时,则在所述窗口管理表中将所述应答消息未超时的窗口设置为第一状态;
窗口退出判断模块,用于在所述应答消息超时时,获取所述应答消息超时的窗口的全局标识,并根据所述全局标识查询所述应答消息超时的窗口是否存在;
第一处理单元,用于在所述窗口退出判断模块的查询结果为否时,在所述窗口管理表中删除所述应答消息超时的窗口的记录;
第二处理单元,用于在所述窗口退出判断模块的查询结果为是时,在所述窗口管理表中将所述应答消息超时的窗口设置为第二状态,并向所述第二状态的窗口发送窗口关闭指令;
强行关闭单元,用于在所述窗口未能在规定时间内关闭时强行关闭窗口。
优选的实施例中,所述系统还包括:
主窗口处理模块,用于判断所述应答消息超时的窗口是否为主窗口,如果是,则查询所述主窗口所在的窗口管理表中子窗口记录数是否为零;
在查询所述子窗口记录数据为零时,向所述主窗口发送窗口关闭指令并注销所述应答消息超时的主窗口所在的窗口管理表;
在所述查询结果为所述子窗口记录数不为零时,在所述主窗口所在的窗口管理表中将所述子窗口设置为第三状态,并向所述第三状态的子窗口发送窗口关闭指令。
优选的实施例中,所述系统还包括:
窗口忙碌处理模块,用于接收所述窗口发送的忙碌标识消息,提取所述忙碌标识消息中的忙碌时间;
还用于在所述窗口管理表中将发送所述忙碌消息的窗口设置为第四状态,并设置在所述忙碌时间内所述心跳循环单元停止向所述第四状态的窗口发送心跳消息。
本申请提供的一种窗口监控方法及系统中,采用窗口管理表的方式管理系统中的窗口,可以定期扫描窗口管理表中,向所述窗口管理表中的所有窗口发送心跳消息,然后等待窗口的应答消息。如果应答超时,则关闭应答超时的窗口或者删除相应的窗口记录。这样,根据与窗口消息的信息交互,以及对应答消息超时的窗口的进一步存活判定等,可以及时、准确的发现卡死或者意外退出的窗口,将其关闭,可以有效维护窗口管理表中窗口信息,提高数据处理系统可靠性,节约系统资源。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一种窗口监控方法一种实施例的方法流程图;
图2是本申请一种窗口监控方法另一种实施例的方法流程图;
图3是本申请一种窗口监控方法另一种实施例的方法流程图;
图4是本申请一种窗口监控系统一种实施例的模块结构示意图;
图5是本申请一种窗口监控系统另一种实施例的模块结构示意图;
图6是本申请一种窗口监控系统另一种实施例的模块结构示意图;
图7是本申请一种窗口监控系统另一种实施例的模块结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请提供一种窗口监控方法,可以采用窗口管理表管理系统中的主窗口、子窗口,甚至,可以管理脱离于主窗口界面的独立子窗口,具体的例如可以设置独立窗口管理表管理独立子窗口等。然后通过与窗口的信息交互,判断窗口的运行状态,及时发现卡死、意外退出的窗口,将其关闭。图1是本申请提供的一种窗口监控方法一个实施例的方法流程图。如图1所示,所述的一种窗口监控方法可以包括:
S1:向窗口管理表中记录的窗口发送心跳消息。
本实施例中可以根据窗口管理表中记录的窗口发送心跳消息,可以包括向主窗口、子窗口或者独立子窗口发送心跳消息。所述的窗口管理表可以为窗口应用中的数据存储单元,或者由存储和逻辑判断单元形成的实现本申请所述的窗口管理表功能的功能模块。所述窗口管理表可以为窗口监控系统终端某一个功能模块单元,也可以为其他装置或者系统或者服务器上的功能模块单元。通常所述窗口管理表中有一个唯一的工区全局标识符,可以用于标识该窗口管理表的主窗口所对应的工区数据。下表1为本实施例中提供的窗口管理表一种格式的示意表。
表1窗口管理表
如表1所示,所述窗口管理中还可以包括窗口状态,用于标识主窗口当前的状态,例如是否最大化、是否最小化等。还可以包括消息接口描述、函数接口描述等,可以用于实现与不同窗口的信息交互,例如可以调用主窗口提供的函数接口,进行注册监听、消息应答等各种操作。本实施例中以及本申请中的其他实施例所涉及的消息接口描述、函数接口描述等并不限定于某一具体的应用设计语言,其他同样可以实现相同功能的应用设计语言也包括在本申请所述范围内。
所述窗口管理表中可以包括零条或者多条属于所述主窗口的子窗口记录。所述子窗口记录可以为在所述主窗口中打开或者建立子窗口时登记于所述主窗口记录时产生,因此,在所述主窗口中如果没有打开或者建立子窗口,则所述主窗口记录中的子窗口记录可以为零条。在子窗口关闭时,相应的,可以在所述窗口管理表中删除子窗口所对应的子窗口记录。
在窗口卡死时常规的处理手段主要为强行关闭窗口,但是这种方法通常会导致遗留问题,例如:窗口使用的资源未能被正确释放、建立的临时文件没有被正确删除等等。本发明的创新之处还在于可以使用包括窗口管理表的方式监控窗口的状态信息,将每一个被监控窗口在所述窗口管理表中进行维护,可以记录窗口使用的资源、建立的临时文件等信息。
当然,本申请中可以包括多个窗口管理表中,每一个窗口管理表可以对应一个工区数据,相应的可以对应一个主窗口。一般的,在一个主窗口关闭时,为其建立的窗口管理表也可以同时销毁,在重写打开工区数据时,可以再重新建立相应的主窗口,为其分配新的窗口标识。
向窗口管理表中记录的窗口发送心跳消息,所述发送心跳消息,可以包括周期性的发送的验证窗口当前状态的消息内容,具体的所述心跳消息的消息内容可以根据需求进行设置,一般的可以为比特位数较低的试探序列信号。
S2:监听所述窗口基于所述接收的心跳消息发送的应答消息,判断接收所述窗口的应答消息是否超时。
所述窗口在接收到所述心跳消息时,可以发送相应的应答消息,可以用于反馈窗口当前的运行状态。如果在一定的应答消息等待时间内,所述由于窗口意外退出或者卡死等异常情况在接收到应答消息时无法回应应答消息,导致接收不到应答消息,或者接收应答消息时已经超过了预置的应答消息等待时间,则可以判断所述窗口的应答消息超时,可以表示应答消息超时的窗口存在异常情况。本申请中其他的实施例中,可以在向窗口发送一次心跳消息没有接收到所述窗口的应答消息时,可以再次向所述窗口发送心跳消息,或者连续多次的发送心跳消息。在等待多个发送的心跳消息均没有接收到窗口的应答消息后,可以判断所述窗口的应答消息超时。
监听窗口反馈的应答消息,判断所述窗口的应答消息是否超时。
S3:如果所述应答消息未超时,则在所述窗口管理表中将所述应答消息未超时的窗口设置为第一状态;
否则,获取应答消息超时的窗口的全局标识,并根据所述全局标识查询所述应答消息超时的窗口是否存在。
如果所述窗口在应答消息等待时间内反馈了应答消息,则所述窗口的应答消息未超时,属于正常的存活窗口,此时,可以在所述窗口管理表中将所述应答消息未超时的窗口设置为“正常”的第一状态。当然,表示所述窗口应答消息未超时的所述第一状态也可以采用其他的表示方式,例如所述第一状态可以用户字符“Nor”或者“001”表示等。
如果所述应答窗口的应答消息超时,则可以先查所述应答消息超时的窗口是否存在。一般的,导致窗口应答消息超时的原因通常包括窗口意外退出,此时窗口已经不存在,或者窗口卡死,此时窗口主程序存在,但无法对心跳信息进行应答。每个窗口在所述窗口管理表中都有相应的全局标识。在判断所述窗口的应答消息超时时,可以获取所述应答消息超时的窗口的全局标识,然后可以根据所述窗口的全局标识查询所述应答消息超时的窗口是否存在,具体的例如查询应答消息超时的窗口的进程是否存在。
S4:在所述查询结果为否时,在所述窗口管理表中删除所述应答消息超时的窗口的记录;
在所述查询结果为所述应答消息超时的窗口存在时,在所述窗口管理表中将所述应答消息超时的窗口设置为第二状态向所述第二状态的窗口发送窗口关闭指令;
如果所述第二状态的窗口在限时关闭时间内未关闭窗口,向所述第二状态的窗口发送窗口强行关闭指令。
上述根据所述全局标识查询所述应答消息超时的窗口如果不存在,可以在所述窗口管理表中删除相应的窗口记录。这样在下次调用或者发送心跳消息或者其他消息的交互中,所述窗口管理表中不在包括删除的应答消息超时的窗口的记录,将已经意外退出的窗口删除,不再与其进行信息交互,节约了不必要的信息交互过程,提高系统运行效率。如果所述查询结果为所述应答消息超时的窗口仍然存在,则可以表示该应答消息超时的窗口可能出现卡死情况,此时可以将该应答消息超时的且存在的窗口状态设置为第二状态,例如所述第二状态可以设置为“正在关闭+限时XXXX毫秒”,然后继续保持寻呼发送心跳消息。所述设置的“限时XXXX毫秒”可以包括为所述应答消息超时的窗口设置的限时关闭时间。如果所述窗口在所述限时关闭时间内由于进行卡死等未能关闭,则可以向所述第二状态的窗口发送强行关闭指令,强行关闭上述限时关闭超时的窗口。同样的关闭所述窗口后,可以在窗口管理表中删除所述关闭的窗口的记录。被监控窗口在回复心跳消息时,附带窗口当前的状态信息,包括窗口建立的临时文件、使用的资源等。信息量不大时,每次发送完整的状态信息;信息量较大时,可以采用发送增量状态信息的方式。在发现窗口已处于卡死状态时,在进行强行关闭的同时,可以查询该窗口的状态信息,对窗口使用的资源、文件等进行清理工作。
本申请提供的一种窗口监控方法,采用窗口管理表统一管理登记窗口信息,在与窗口管理表中的窗口进行心跳消息与应答消息交互,获取窗口的反馈信息,判断窗口的状态,快速准确的将意外退出或者卡死长期无反应的窗口关闭。本申请通过主动设置应答超时的窗口的限时关闭时间,可以预先设置将在一定时间内无反应或者无法关闭的窗口强行关闭,避免常规窗口卡死等无法被有效、及时的检测到,提供系统可靠性,同时关闭卡死意外窗口等,避无用窗口免占用内存等,也节约了系统资源。
在其他的应用场景中,所述的窗口可以包括主窗口以及属于同一主窗口的子窗口,或者独立子窗口等。所述的主窗口、子窗口、独立子窗口等在数据处理运行时都有可能发生意外退出或者卡死的情况。本申请的另一种实施例中,所述的一种窗口监控方法还可以判断应答窗口的窗口是否为主窗口,并对所述应答消息超时的主窗口做相应的处理。图2是本申请所述一种窗口监控方法另一种实施例的方法流程示意图,如图2所示,所述方法还可以包括:
S5:判断所述应答消息超时的窗口是否为主窗口,如果是,则查询所述主窗口所在的窗口管理表中子窗口记录数是否为零;
在查询所述子窗口记录数据为零时,向所述主窗口发送窗口关闭指令并注销所述应答消息超时的主窗口所在的窗口管理表。
如果判断所述应答消息超时的窗口为主窗口,则需要关闭该主窗口。本实施例中,在关闭所述主窗口之前,可以查询该应答消息超时的主窗口下是否还存在属于该主窗口的子窗口,在所述主窗口下没有子窗口时才可以关闭所述主窗口。在本实施例中,可以在所述应答消息超时的窗口所在的窗口管理表中查询属于所述主窗口的子窗口记录数是否为零,如果所述子窗口记录数为零,可以表示所述主窗口下的子窗口已经全部关闭,此时可以向所述主窗口发送窗口关闭指令,请求关闭该应答消息超时且无子窗口的主窗口。具体的关闭方式可以参照上述实施例,也看也设置关闭等待时间等,再次不做赘述。需要说明的是,在本实施例中,通常的一个工区数据对应一个主窗口,在一些应用实施例中,为方便窗口管理效率,可以设置一个窗口管理表对应一个主窗口,因此,本实施例中在关闭所述应答消息超时的主窗口后可以销毁改主窗口所对应的窗口管理表,即注销所述应答消息超时的主窗口所在的窗口管理表。
上述实施例的另一种情况下,在所述窗口记录表中查询的结果为所述子窗口记录数不为零时,可以先向该主窗口的子窗口发送关闭指令,每一个子窗口关闭后可以在所述窗口管理表中删除相应的子窗口记录。在所述子窗口全部关闭后,所述窗口管理表中子窗口的记录为也相应的为零,然后可以在关闭所述主窗口。因此,本申请的另一种实施例中,所述一种窗口监控方法还可以包括:
S501:在所述查询结果为所述子窗口记录数不为零时,在所述主窗口所在的窗口管理表中将所述子窗口设置为第三状态;
向所述第三状态的子窗口发送窗口关闭指令;如果所述子窗口在关闭等待时间内关闭窗口时,则在所述窗口管理表中删除所述子窗口相对应的记录。
在具体的实现方式上,被监控窗口向监控系统注册一个卡死处理模块,被监控窗口在回复心跳消息时,附带一系列参数,监控模块不使用这些参数,只是将其保存起来,在发现窗口已处于卡死状态时,监控模块启用一个新进程调用该窗口注册的卡死处理模块,并将保存的关于该窗口的一系列参数传递给该卡死处理模块。卡死处理模块的行为由被监控窗口自行定义,可以是关闭窗口、重启窗口,或者尝试从内部逻辑上解除卡死状态,监控模块可以不予干预。
当然,另一种实施例中,如果所述子窗口未能在关闭等待时间内关闭窗口,则可以发送强行关闭指令关闭所述子窗口。本申请所属一种窗口管理方法另一种实施例中,所述方法还可以包括:
S5011:所述子窗口在所述关闭等待时间内未关闭窗口时,发送强行关闭指令关闭所述等待时间内未关闭窗口的子窗口。
在另一种实施例中,所述向第二状态或者第三状态的窗口发送窗口关闭指令后,如果所述第二状态或者第三状态的窗口在所述限时关闭时间或者所述关闭等待时间内回复了“心跳”,接收到了发送的心跳消息并反馈相应的应答消息,此时可以重新设置该窗口的状态为“正常”。图3是本申请所述一种窗口监控方法另一种实施例的方法流程示意图,如图3所示,所述一种窗口监控方法中所述方法还可以包括:
S6:在所述限时关闭时间或者所述关闭等待时间内接收到所述第二状态或者第三状态的窗口发送的应答消息时,将所述窗口的所述第二状态或者第三状态设置为第一状态。
本申请还提供另一种窗口监控方法的实施方式,在该方式中,所述窗口可以主动标识自己处理忙碌状态,可以避免窗口因暂时忙碌未反馈应答消息而被当作异常卡死等被误关闭。本申请的所述一种窗口监控方法的另一种实施例中,所述方法还可以包括:
接收所述窗口发送的忙碌标识消息,提取所述忙碌标识消息中的忙碌时间;
在所述窗口管理表中将发送所述忙碌消息的窗口设置为第四状态,并在所述忙碌时间内停止向所述第四状态的窗口发送心跳消息。
在本实施例中,可以向所有窗口发送心跳消息,若其中某个窗口回复心跳消息时包括了忙碌标识消息,标识自己即将进入忙碌状态,之后的一段时间内(例如忙碌时间XXX毫秒)内可能无法回复心跳消息。在接收到所述窗口发送的忙碌标识消息后,可以提取所述忙碌标识消息中设置的忙碌时间,将所述窗口的状态设置为第四状态,具体的例如可以设置为“忙碌+限时XXXX毫秒”。之后可以继续循环发送心跳消息,但可以不再向所述第三状态的窗口发送心跳消息。可以在每次心跳消息循环时,扫描所述窗口管理表,将该窗口的忙时时间减去心跳间隔时间。如果在所述忙碌时间用完之前,该窗口回复了心跳消息,标识自己不再忙碌,则可以重新将该窗口的状态设置为“正常”的第一状态。如果上述时间相减后剩余的忙碌时间小于或者等于零,则可以重新将该窗口的状态设置为“正常”的第一状态,继续循环向该窗口发送心跳消息。如果该窗口连续多个心跳消息均为回复,根据预先的判断规则判断该窗口为应答消息超时,则进入本申请中相应的窗口异常退出或者卡死等情况的处理流程。
当然,如果该窗口认为需要延长忙碌时间,也可以发送新的忙碌标识消息,然后可以按照新的忙碌标识消息中的忙碌时间值更新该窗口的窗口状态中的忙碌时间的值。
本申请的提供的一种窗口监控方法,窗口可以主动标识自己处理忙碌状态,可以避免窗口因暂时忙碌未反馈应答消息而被当作异常卡死等被误关闭,提高系统窗口管理效率和系统可靠性。
基于本申请所述的一种窗口监控方法,本申请提供一种窗口监控系统。图4是本申请所述一种窗口监控系统的模块结构示意图,如图4所示,所述系统可以包括:
心跳循环单元101,可以用于基于窗口管理表中的记录向窗口发送心跳消息;
应答接收模块102,可以用于监听所述窗口发送的应答消息,并判断接收所述窗口的应答消息是否超时;如果所述应答消息未超时,则在所述窗口管理表中将所述应答消息未超时的窗口设置为第一状态;所述应答消息超时可以包括未能在预置的应答消息等待时间内接收到窗口的应答消息;
窗口退出判断模块103,可以用于在所述应答消息超时时,获取所述应答消息超时的窗口的全局标识,并根据所述全局标识查询所述应答消息超时的窗口是否存在;
第一处理单元104,可以用于在所述窗口退出判断模块103的查询结果为否时,在所述窗口管理表中删除所述应答消息超时的窗口的记录;
第二处理单元105,可应用于在所述窗口退出判断模块103的查询结果为是时,在所述窗口管理表中将所述应答消息超时的窗口设置为第二状态,并向所述第二状态的窗口发送窗口关闭指令;
强行关闭单元106,可以用于在所述窗口未能在规定时间内关闭时强行关闭窗口。
本申请的提供的一种窗口监控系统,可以通过与窗口的消息交互监控窗口状态,及时有效的发现数据处理系统中的意外退出或者卡死的窗口,并进行相应的处理,可以提高数据处理系统的可靠性,提高所述系统数据处理效率和降低资源占用。
图5是本申请所述一种窗口监控系统另一种实施例的模块结构示意图,如图5所示,所述系统还可以包括:
主窗口处理模块107,可以用于判断所述应答消息超时的窗口是否为主窗口,如果是,则查询所述主窗口所在的窗口管理表中子窗口记录数是否为零;
在查询所述子窗口记录数据为零时,向所述主窗口发送窗口关闭指令并注销所述应答消息超时的主窗口所在的窗口管理表;
在所述查询结果为所述子窗口记录数不为零时,在所述主窗口所在的窗口管理表中将所述子窗口设置为第三状态,并向所述第三状态的子窗口发送窗口关闭指令。
上述所述向第三状态的子窗口发送窗口关闭指令中,如果所述子窗口在关闭等待时间内关闭窗口时,则在所述窗口管理表中删除所述子窗口相对应的记录。
当然,如果所述子窗口在所述关闭等待时间内未关闭窗口,则所述强行关闭单元106可以强行关闭所述等待时间内未能关闭窗口的子窗口。
图6是本申请所述一种窗口监控系统另一种实施例的模块结构示意图,如图6所示,所述系统还可以包括:
心跳恢复模块108,可以用于在所述限时关闭时间或者所述关闭等待时间内接收到所述第二状态或者第三状态的窗口发送的应答消息时,将所述窗口的所述第二状态或者第三状态设置为第一状态。
这样,所述监控系统在一定时间内又接收到第二或者第三窗口的应答消息,可以表示该窗口恢复了正常,反馈了应答消息,则可以将该窗口重新设置为第一状态,继续进行心跳循环。
本申请所述一种窗口监控系统的另一种优选实施例中,所述系统还可以处理主动标识自己为忙碌状态的窗口消息。图7是本申请所述一种窗口监控系统另一种实施例的模块结构示意图,如图7所示,所述系统还可以包括:
窗口忙碌处理模块109,可以用于接收所述窗口发送的忙碌标识消息,提取所述忙碌标识消息中的忙碌时间;
还可以用于在所述窗口管理表中将发送所述忙碌消息的窗口设置为第四状态,并设置在所述忙碌时间内所述心跳循环单元101停止向所述第四状态的窗口发送心跳消息。
在本实施例中可以在达到所述忙碌时间时将所述窗口的第四状态设置为第一状态,或者在所述忙碌时间内收到所述第四窗口发送的应答消息时将所述窗口的第四状态设置为第一状态,然后所述心跳循环单元101向原第四状态的窗口发送心跳消息,继续进行消息交互。
本申请提供的一种窗口监控方法及系统,采用窗口管理表的方式管理系统中的窗口,可以定期扫描窗口管理表中,向所述窗口管理表中的所有窗口发送心跳消息,然后等待窗口的应答消息。如果应答超时,则关闭应答超时的窗口或者删除相应的窗口记录。这样,根据与窗口消息的信息交互,以及对应答消息超时的窗口的进一步存活判定等,可以及时、准确的发现卡死或者意外退出的窗口,将其关闭,可以有效维护窗口管理表中窗口信息,提高数据处理系统可靠性,节约系统资源。
尽管本申请内容中提到不同窗口之间的通信、窗口函数调用等相关的通信协议、应用设计开发语言相关之类的描述,但是,本申请并不局限于必须是完全符合规范的通信传输协议或者应用设计开发语言标准的情况。某些协议或类或组件的基础上略加修改后也可以实行上述本申请各实施例的方案。当然,即使不采用上述通用的协议或应用开发标准,而是采用私有协议或应用开发语言,只要符合本申请上述各实施例的信息交互和信息判断反馈方式,仍然可以实现相同的申请,在此不再赘述。
上述实施例阐明的单元或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。
Claims (10)
1.一种窗口监控方法,其特征在于,所述方法包括:
S1:向窗口管理表中记录的窗口发送心跳消息;
S2:监听所述窗口基于所述接收的心跳消息发送的应答消息,判断接收所述窗口的应答消息是否超时;
S3:如果所述应答消息未超时,则在所述窗口管理表中将所述应答消息未超时的窗口设置为第一状态;
否则,获取应答消息超时的窗口的全局标识,并根据所述全局标识查询所述应答消息超时的窗口是否存在;
S4:在所述查询结果为否时,在所述窗口管理表中删除所述应答消息超时的窗口的记录;
在所述查询结果为所述应答消息超时的窗口存在时,在所述窗口管理表中将所述应答消息超时的窗口设置为第二状态,向所述第二状态的窗口发送窗口关闭指令;
如果所述第二状态的窗口在限时关闭时间内未关闭窗口,向所述第二状态的窗口发送窗口强行关闭指令。
2.如权利要求1所述的一种窗口监控方法,其特征在于,所述方法还包括:
S5:判断所述应答消息超时的窗口是否为主窗口,如果是,则查询所述主窗口所在的窗口管理表中子窗口记录数是否为零;
在查询所述子窗口记录数据为零时,向所述主窗口发送窗口关闭指令并注销所述应答消息超时的主窗口所在的窗口管理表。
3.如权利要求2所述的一种窗口监控方法,其特征在于,所述方法还包括:
在所述查询结果为所述子窗口记录数不为零时,在所述主窗口所在的窗口管理表中将所述子窗口设置为第三状态;
向所述第三状态的子窗口发送窗口关闭指令;如果所述子窗口在关闭等待时间内关闭窗口时,则在所述窗口管理表中删除所述子窗口相对应的记录。
4.如权利要求3所述的一种窗口监控方法,其特征在于,所述方法还包括:
所述子窗口在所述关闭等待时间内未关闭窗口时,发送强行关闭指令关闭所述等待时间内未关闭窗口的子窗口。
5.如权利要求1-4中任意一项所述的一种窗口监控方法,其特征在于,所述方法还包括:
S6:在所述限时关闭时间或者所述关闭等待时间内接收到所述第二状态或者第三状态的窗口发送的应答消息时,将所述窗口的所述第二状态或者第三状态设置为第一状态。
6.如权利要求1所述的一种窗口监控方法,其特征在于,所述方法还包括:
接收所述窗口发送的忙碌标识消息,提取所述忙碌标识消息中的忙碌时间;
在所述窗口管理表中将发送所述忙碌消息的窗口设置为第四状态,并在所述忙碌时间内停止向所述发送忙碌消息的窗口发送心跳消息。
7.一种窗口监控系统,其特征在于,所述系统包括:
心跳循环单元,用于基于窗口管理表中的记录向窗口发送心跳消息;
应答接收模块,用于监听所述窗口发送的应答消息,并判断接收所述窗口的应答消息是否超时;如果所述应答消息未超时,则在所述窗口管理表中将所述应答消息未超时的窗口设置为第一状态;
窗口退出判断模块,用于在所述应答消息超时时,获取所述应答消息超时的窗口的全局标识,并根据所述全局标识查询所述应答消息超时的窗口是否存在;
第一处理单元,用于在所述窗口退出判断模块的查询结果为否时,在所述窗口管理表中删除所述应答消息超时的窗口的记录;
第二处理单元,用于在所述窗口退出判断模块的查询结果为是时,在所述窗口管理表中将所述应答消息超时的窗口设置为第二状态,并向所述第二状态的窗口发送窗口关闭指令;
强行关闭单元,用于在所述窗口未能在规定时间内关闭时强行关闭窗口。
8.如权利要求7所述的一种窗口监控系统,其特征在于,所述系统还包括:
主窗口处理模块,用于判断所述应答消息超时的窗口是否为主窗口,如果是,则查询所述主窗口所在的窗口管理表中子窗口记录数是否为零;
在查询所述子窗口记录数据为零时,向所述主窗口发送窗口关闭指令并注销所述应答消息超时的主窗口所在的窗口管理表;
在所述查询结果为所述子窗口记录数不为零时,在所述主窗口所在的窗口管理表中将所述子窗口设置为第三状态,并向所述第三状态的子窗口发送窗口关闭指令。
9.如权利要求7所述的一种窗口监控系统,其特征在于,所述系统还包括:
心跳恢复模块,用于在所述限时关闭时间或者所述关闭等待时间内接收到所述第二状态或者第三状态的窗口发送的应答消息时,将所述窗口的所述第二状态或者第三状态设置为第一状态。
10.如权利要求7所述的一种窗口监控系统,其特征在于,所述系统还包括:
窗口忙碌处理模块,用于接收所述窗口发送的忙碌标识消息,提取所述忙碌标识消息中的忙碌时间;
还用于在所述窗口管理表中将发送所述忙碌消息的窗口设置为第四状态,并设置在所述忙碌时间内所述心跳循环单元停止向所述第四状态的窗口发送心跳消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510040684.2A CN104598241B (zh) | 2015-01-27 | 2015-01-27 | 一种窗口监控方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510040684.2A CN104598241B (zh) | 2015-01-27 | 2015-01-27 | 一种窗口监控方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104598241A true CN104598241A (zh) | 2015-05-06 |
CN104598241B CN104598241B (zh) | 2018-01-19 |
Family
ID=53124061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510040684.2A Active CN104598241B (zh) | 2015-01-27 | 2015-01-27 | 一种窗口监控方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104598241B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104991855A (zh) * | 2015-06-16 | 2015-10-21 | 广州华多网络科技有限公司 | 界面卡顿处理方法及装置 |
CN105740326A (zh) * | 2016-01-21 | 2016-07-06 | 腾讯科技(深圳)有限公司 | 浏览器的线程状态监测方法及装置 |
WO2016206550A1 (zh) * | 2015-06-25 | 2016-12-29 | 中兴通讯股份有限公司 | 电子工单处理方法及装置 |
WO2017041531A1 (zh) * | 2015-09-11 | 2017-03-16 | 中兴通讯股份有限公司 | 一种超时等待时长更新方法及装置 |
CN106681827A (zh) * | 2016-05-11 | 2017-05-17 | 腾讯科技(深圳)有限公司 | 一种检测软件运行卡慢的方法及装置、电子设备 |
CN106791177A (zh) * | 2017-01-17 | 2017-05-31 | 深圳市赛亿科技开发有限公司 | 短信读取方法及系统 |
CN109558233A (zh) * | 2018-11-29 | 2019-04-02 | 北京北信源信息安全技术有限公司 | 窗口进程管理方法、装置、存储介质及服务器 |
CN109684120A (zh) * | 2018-12-19 | 2019-04-26 | Oppo广东移动通信有限公司 | 系统服务通信方法、装置、终端设备及存储介质 |
CN112783679A (zh) * | 2019-11-11 | 2021-05-11 | 腾讯科技(深圳)有限公司 | 一种窗口检测方法、装置、设备及存储介质 |
CN113867815A (zh) * | 2021-09-17 | 2021-12-31 | 杭州当虹科技股份有限公司 | 服务器挂起监测和自动重启方法以及应用其的服务器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101227630A (zh) * | 2008-01-29 | 2008-07-23 | 中兴通讯股份有限公司 | 一种基于窗口平台的应用程序监控方法 |
CN103631706A (zh) * | 2012-08-27 | 2014-03-12 | 腾讯科技(深圳)有限公司 | 一种浏览器测试方法和装置 |
US20140164941A1 (en) * | 2012-12-06 | 2014-06-12 | Samsung Electronics Co., Ltd | Display device and method of controlling the same |
-
2015
- 2015-01-27 CN CN201510040684.2A patent/CN104598241B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101227630A (zh) * | 2008-01-29 | 2008-07-23 | 中兴通讯股份有限公司 | 一种基于窗口平台的应用程序监控方法 |
CN103631706A (zh) * | 2012-08-27 | 2014-03-12 | 腾讯科技(深圳)有限公司 | 一种浏览器测试方法和装置 |
US20140164941A1 (en) * | 2012-12-06 | 2014-06-12 | Samsung Electronics Co., Ltd | Display device and method of controlling the same |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104991855A (zh) * | 2015-06-16 | 2015-10-21 | 广州华多网络科技有限公司 | 界面卡顿处理方法及装置 |
CN104991855B (zh) * | 2015-06-16 | 2018-09-11 | 广州华多网络科技有限公司 | 界面卡顿处理方法及装置 |
WO2016206550A1 (zh) * | 2015-06-25 | 2016-12-29 | 中兴通讯股份有限公司 | 电子工单处理方法及装置 |
CN106327038A (zh) * | 2015-06-25 | 2017-01-11 | 中兴通讯股份有限公司 | 电子工单处理方法及装置 |
WO2017041531A1 (zh) * | 2015-09-11 | 2017-03-16 | 中兴通讯股份有限公司 | 一种超时等待时长更新方法及装置 |
CN105740326A (zh) * | 2016-01-21 | 2016-07-06 | 腾讯科技(深圳)有限公司 | 浏览器的线程状态监测方法及装置 |
CN106681827B (zh) * | 2016-05-11 | 2021-04-06 | 腾讯科技(深圳)有限公司 | 一种检测软件运行卡慢的方法及装置、电子设备 |
CN106681827A (zh) * | 2016-05-11 | 2017-05-17 | 腾讯科技(深圳)有限公司 | 一种检测软件运行卡慢的方法及装置、电子设备 |
CN106791177A (zh) * | 2017-01-17 | 2017-05-31 | 深圳市赛亿科技开发有限公司 | 短信读取方法及系统 |
CN109558233A (zh) * | 2018-11-29 | 2019-04-02 | 北京北信源信息安全技术有限公司 | 窗口进程管理方法、装置、存储介质及服务器 |
CN109684120A (zh) * | 2018-12-19 | 2019-04-26 | Oppo广东移动通信有限公司 | 系统服务通信方法、装置、终端设备及存储介质 |
CN112783679A (zh) * | 2019-11-11 | 2021-05-11 | 腾讯科技(深圳)有限公司 | 一种窗口检测方法、装置、设备及存储介质 |
CN113867815A (zh) * | 2021-09-17 | 2021-12-31 | 杭州当虹科技股份有限公司 | 服务器挂起监测和自动重启方法以及应用其的服务器 |
CN113867815B (zh) * | 2021-09-17 | 2023-08-11 | 杭州当虹科技股份有限公司 | 服务器挂起监测和自动重启方法以及应用其的服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN104598241B (zh) | 2018-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104598241A (zh) | 一种窗口监控方法及系统 | |
US7467267B1 (en) | Method and system for backing up or restoring data in remote devices over a communications network | |
CN107451268B (zh) | 一种面向实时数据库的断网续传的方法 | |
CN108076098A (zh) | 一种业务处理方法及系统 | |
CN108092836A (zh) | 一种服务器的监控方法及装置 | |
CN102857371B (zh) | 一种面向集群系统的动态配置管理方法 | |
CN102411599A (zh) | 数据仓库中异常行为的处理方法及监测服务器 | |
US9015731B2 (en) | Event handling system and method | |
US11061669B2 (en) | Software development tool integration and monitoring | |
CN102761528A (zh) | 数据管理系统及方法 | |
CN104038390B (zh) | 一种基于netlink的linux服务器集群统一外设事件监听方法 | |
CN108089915A (zh) | 基于消息队列的业务控件化处理的方法及系统 | |
CN110874666A (zh) | 物品的配送方法、系统、设备和存储介质 | |
CN102891899A (zh) | 一种远程监控隔离设备的系统及监控方法 | |
CN108833451B (zh) | 基于国产安全管控平台的多级管控系统及管控方法 | |
CN113364857A (zh) | 业务数据的处理方法、装置和服务器 | |
CN113468023A (zh) | 监控方法、装置、介质及电子设备 | |
CN105743695A (zh) | 一种基于iec104 规约的监听方法及系统 | |
CN117493116A (zh) | 采集终端的监控处理方法、平台、装置 | |
CN113760634A (zh) | 一种数据处理方法和装置 | |
CN108154343B (zh) | 一种企业级信息系统的应急处理方法及系统 | |
US10674337B2 (en) | Method and device for processing operation for device peripheral | |
CN115543491A (zh) | 微服务处理方法和装置 | |
CN106485378A (zh) | 业务数据的传输方法、系统和服务器 | |
CN110738580A (zh) | 一种欠费停复电自动跟踪工单的配置方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |