一種窗口監(jiān)控方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本申請(qǐng)屬于計(jì)算機(jī)信息處理技術(shù)領(lǐng)域,尤其涉及一種窗口監(jiān)控方法及系統(tǒng)。
【背景技術(shù)】
[0002] 在石油勘探地震數(shù)據(jù)處理中,常常需要多個(gè)不同的子窗口展示地震數(shù)據(jù)的不同地 質(zhì)特性或者不同的觀察角度,因此,在地震數(shù)據(jù)處理時(shí),尤其是大數(shù)據(jù)量地震數(shù)據(jù)經(jīng)常面臨 幾十甚至更多的窗口。
[0003] 在地震數(shù)據(jù)處理中,一般將屬于一個(gè)勘探區(qū)域或者一次勘探采集的一組相互關(guān)聯(lián) 的數(shù)據(jù)定義為一個(gè)工區(qū)數(shù)據(jù),包括測線、井曲線、層位、地震道等。在對(duì)地震數(shù)據(jù)數(shù)據(jù)處理 時(shí),通常是對(duì)不同的工區(qū)數(shù)據(jù)分布進(jìn)行分析處理。一般一個(gè)工區(qū)數(shù)據(jù)在處理時(shí)對(duì)應(yīng)一個(gè)主 窗口。由于工區(qū)數(shù)據(jù)查看方式不同、展示的數(shù)據(jù)維數(shù)不同、顯示剖面不同等等,通常在一個(gè) 工區(qū)數(shù)據(jù)主窗口下可以建立多個(gè)子窗口進(jìn)行地質(zhì)其他特性的分析處理。由于數(shù)據(jù)處理系統(tǒng) 存在大量窗口進(jìn)程,導(dǎo)致系統(tǒng)負(fù)荷加重,經(jīng)常出現(xiàn)窗口卡死、無響應(yīng)、意外退出等異常現(xiàn)象, 大大降低了數(shù)據(jù)處理系統(tǒng)的可用性和可靠性。
[0004] 在面臨多窗口的地震數(shù)據(jù)處理系統(tǒng)時(shí),現(xiàn)有中常使用的方法包括作業(yè)人員認(rèn)為觀 察窗口狀態(tài)是否活動(dòng),或者通過系統(tǒng)進(jìn)程查看窗口是否存活等,在系統(tǒng)運(yùn)行時(shí),一些卡死、 無響應(yīng)的窗口經(jīng)常檢測不到,浪費(fèi)系統(tǒng)資源,而另一些當(dāng)前存活但正在忙碌的窗口被當(dāng)作 卡死而被誤關(guān)閉,引起操作失誤?,F(xiàn)有技術(shù)中對(duì)窗口運(yùn)行狀態(tài)的監(jiān)控方法判斷不夠準(zhǔn)確、處 理不夠及時(shí),降低了數(shù)據(jù)處理系統(tǒng)使用的可靠性和系統(tǒng)資源使用率。
【發(fā)明內(nèi)容】
[0005] 本申請(qǐng)目的在于提供一種窗口監(jiān)控方法及系統(tǒng),可以從與窗口的消息交互中判斷 設(shè)置窗口的運(yùn)行狀態(tài),對(duì)符合預(yù)置條件的窗口進(jìn)行相應(yīng)的處理,可以提供數(shù)據(jù)處理系統(tǒng)的 可靠性,節(jié)約系統(tǒng)資源。
[0006] 本申請(qǐng)?zhí)峁┑囊环N窗口監(jiān)控方法及系統(tǒng)是這樣實(shí)現(xiàn)的:
[0007] -種窗口監(jiān)控方法,所述方法包括:
[0008] Sl :向窗口管理表中記錄的窗口發(fā)送心跳消息;
[0009] S2:監(jiān)聽所述窗口基于所述接收的心跳消息發(fā)送的應(yīng)答消息,判斷接收所述窗口 的應(yīng)答消息是否超時(shí);
[0010] S3 :如果所述應(yīng)答消息未超時(shí),則在所述窗口管理表中將所述應(yīng)答消息未超時(shí)的 窗口設(shè)置為第一狀態(tài);
[0011] 否則,獲取應(yīng)答消息超時(shí)的窗口的全局標(biāo)識(shí),并根據(jù)所述全局標(biāo)識(shí)查詢所述應(yīng)答 消息超時(shí)的窗口是否存在;
[0012] S4:在所述查詢結(jié)果為否時(shí),在所述窗口管理表中刪除所述應(yīng)答消息超時(shí)的窗口 的記錄;
[0013] 在所述查詢結(jié)果為所述應(yīng)答消息超時(shí)的窗口存在時(shí),在所述窗口管理表中將所述 應(yīng)答消息超時(shí)的窗口設(shè)置為第二狀態(tài),向所述第二狀態(tài)的窗口發(fā)送窗口關(guān)閉指令;
[0014] 如果所述第二狀態(tài)的窗口在限時(shí)關(guān)閉時(shí)間內(nèi)未關(guān)閉窗口,向所述第二狀態(tài)的窗口 發(fā)送窗口強(qiáng)行關(guān)閉指令。
[0015] 優(yōu)選的實(shí)施例中,所述方法還包括:
[0016] 判斷所述應(yīng)答消息超時(shí)的窗口是否為主窗口,如果是,則查詢所述主窗口所在的 窗口管理表中子窗口記錄數(shù)是否為零;
[0017] 在查詢所述子窗口記錄數(shù)據(jù)為零時(shí),向所述主窗口發(fā)送窗口關(guān)閉指令并注銷所述 應(yīng)答消息超時(shí)的主窗口所在的窗口管理表。
[0018] 另一種優(yōu)選的實(shí)施例中,所述方法還包括:
[0019] 接收所述窗口發(fā)送的忙碌標(biāo)識(shí)消息,提取所述忙碌標(biāo)識(shí)消息中的忙碌時(shí)間;
[0020] 在所述窗口管理表中將發(fā)送所述忙碌消息的窗口設(shè)置為第四狀態(tài),并在所述忙碌 時(shí)間內(nèi)停止向所述發(fā)送忙碌消息的窗口發(fā)送心跳消息。
[0021] 一種窗口監(jiān)控系統(tǒng),所述系統(tǒng)包括:
[0022] 心跳循環(huán)單元,用于基于窗口管理表中的記錄向窗口發(fā)送心跳消息;
[0023] 應(yīng)答接收模塊,用于監(jiān)聽所述窗口發(fā)送的應(yīng)答消息,并判斷接收所述窗口的應(yīng)答 消息是否超時(shí);如果所述應(yīng)答消息未超時(shí),則在所述窗口管理表中將所述應(yīng)答消息未超時(shí) 的窗口設(shè)置為第一狀態(tài);
[0024] 窗口退出判斷模塊,用于在所述應(yīng)答消息超時(shí)時(shí),獲取所述應(yīng)答消息超時(shí)的窗口 的全局標(biāo)識(shí),并根據(jù)所述全局標(biāo)識(shí)查詢所述應(yīng)答消息超時(shí)的窗口是否存在;
[0025] 第一處理單元,用于在所述窗口退出判斷模塊的查詢結(jié)果為否時(shí),在所述窗口管 理表中刪除所述應(yīng)答消息超時(shí)的窗口的記錄;
[0026] 第二處理單元,用于在所述窗口退出判斷模塊的查詢結(jié)果為是時(shí),在所述窗口管 理表中將所述應(yīng)答消息超時(shí)的窗口設(shè)置為第二狀態(tài),并向所述第二狀態(tài)的窗口發(fā)送窗口關(guān) 閉指令;
[0027] 強(qiáng)行關(guān)閉單元,用于在所述窗口未能在規(guī)定時(shí)間內(nèi)關(guān)閉時(shí)強(qiáng)行關(guān)閉窗口。
[0028] 優(yōu)選的實(shí)施例中,所述系統(tǒng)還包括:
[0029] 主窗口處理模塊,用于判斷所述應(yīng)答消息超時(shí)的窗口是否為主窗口,如果是,則查 詢所述主窗口所在的窗口管理表中子窗口記錄數(shù)是否為零;
[0030] 在查詢所述子窗口記錄數(shù)據(jù)為零時(shí),向所述主窗口發(fā)送窗口關(guān)閉指令并注銷所述 應(yīng)答消息超時(shí)的主窗口所在的窗口管理表;
[0031] 在所述查詢結(jié)果為所述子窗口記錄數(shù)不為零時(shí),在所述主窗口所在的窗口管理表 中將所述子窗口設(shè)置為第三狀態(tài),并向所述第三狀態(tài)的子窗口發(fā)送窗口關(guān)閉指令。
[0032] 優(yōu)選的實(shí)施例中,所述系統(tǒng)還包括:
[0033] 窗口忙碌處理模塊,用于接收所述窗口發(fā)送的忙碌標(biāo)識(shí)消息,提取所述忙碌標(biāo)識(shí) 消息中的忙碌時(shí)間;
[0034] 還用于在所述窗口管理表中將發(fā)送所述忙碌消息的窗口設(shè)置為第四狀態(tài),并設(shè)置 在所述忙碌時(shí)間內(nèi)所述心跳循環(huán)單元停止向所述第四狀態(tài)的窗口發(fā)送心跳消息。
[0035] 本申請(qǐng)?zhí)峁┑囊环N窗口監(jiān)控方法及系統(tǒng)中,采用窗口管理表的方式管理系統(tǒng)中的 窗口,可以定期掃描窗口管理表中,向所述窗口管理表中的所有窗口發(fā)送心跳消息,然后等 待窗口的應(yīng)答消息。如果應(yīng)答超時(shí),則關(guān)閉應(yīng)答超時(shí)的窗口或者刪除相應(yīng)的窗口記錄。這 樣,根據(jù)與窗口消息的信息交互,以及對(duì)應(yīng)答消息超時(shí)的窗口的進(jìn)一步存活判定等,可以 及時(shí)、準(zhǔn)確的發(fā)現(xiàn)卡死或者意外退出的窗口,將其關(guān)閉,可以有效維護(hù)窗口管理表中窗口信 息,提高數(shù)據(jù)處理系統(tǒng)可靠性,節(jié)約系統(tǒng)資源。
【附圖說明】
[0036] 為了更清楚地說明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 申請(qǐng)中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提 下,還可以根據(jù)這些附圖獲得其他的附圖。
[0037] 圖1是本申請(qǐng)一種窗口監(jiān)控方法一種實(shí)施例的方法流程圖;
[0038] 圖2是本申請(qǐng)一種窗口監(jiān)控方法另一種實(shí)施例的方法流程圖;
[0039] 圖3是本申請(qǐng)一種窗口監(jiān)控方法另一種實(shí)施例的方法流程圖;
[0040] 圖4是本申請(qǐng)一種窗口監(jiān)控系統(tǒng)一種實(shí)施例的模塊結(jié)構(gòu)示意圖;
[0041] 圖5是本申請(qǐng)一種窗口監(jiān)控系統(tǒng)另一種實(shí)施例的模塊結(jié)構(gòu)示意圖;
[0042] 圖6是本申請(qǐng)一種窗口監(jiān)控系統(tǒng)另一種實(shí)施例的模塊結(jié)構(gòu)示意圖;
[0043] 圖7是本申請(qǐng)一種窗口監(jiān)控系統(tǒng)另一種實(shí)施例的模塊結(jié)構(gòu)示意圖。