鐘,每隔M秒檢查一次是否超時(shí);
[0189]步驟807,為防止進(jìn)程中出現(xiàn)異常,如果在不能正常返回REST (Representat1nalState Transfer,表述性狀態(tài)轉(zhuǎn)移)消息,在保護(hù)時(shí)間結(jié)束后,任務(wù)運(yùn)行時(shí)間未超出N分鐘,則返回執(zhí)行805 ;
[0190]步驟808,在保護(hù)時(shí)間結(jié)束后,任務(wù)運(yùn)行時(shí)間超出N分鐘后認(rèn)為超時(shí),任務(wù)執(zhí)行結(jié)束。
[0191 ] 步驟803對(duì)NAT環(huán)境下的終端和步驟804對(duì)非NAT環(huán)境下的終端分別刷新的不限于此,也可以是先執(zhí)行非NAT環(huán)境下的終端的刷新,再執(zhí)行對(duì)NAT環(huán)境下的終端的刷新,任何可以通過(guò)本方案刷新的方式均屬于本發(fā)明保護(hù)范圍。
[0192]如圖9所示,相應(yīng)的,應(yīng)用于網(wǎng)管系統(tǒng)的本發(fā)明實(shí)施例的終端狀態(tài)實(shí)時(shí)刷新裝置中,包括:
[0193]第一獲取模塊901,用于獲取網(wǎng)絡(luò)地址轉(zhuǎn)換NAT環(huán)境下的第一類終端的信息和處于非NAT環(huán)境下的第二類終端的信息,其中所述信息包括終端的連接狀態(tài);
[0194]第一任務(wù)觸發(fā)模塊902,用于發(fā)送對(duì)NAT環(huán)境下的第一類終端進(jìn)行狀態(tài)刷新的第一任務(wù)觸發(fā)指令給STUN服務(wù)器;
[0195]第一接收模塊903,用于接收所述STUN服務(wù)器返回的所述第一類終端的連接狀態(tài),所述第一類終端的連接狀態(tài)是通過(guò)STUN服務(wù)器根據(jù)所述第一類終端主動(dòng)上報(bào)的心跳數(shù)據(jù)更新得到的;
[0196]第二任務(wù)觸發(fā)模塊904,用于發(fā)送對(duì)非NAT環(huán)境下的第二類終端進(jìn)行狀態(tài)刷新,且攜帶有啟動(dòng)多進(jìn)程的參數(shù)的第二任務(wù)觸發(fā)指令來(lái)啟動(dòng)多進(jìn)程,以利用所述多進(jìn)程的各個(gè)進(jìn)程向第二類終端發(fā)送連接請(qǐng)求;
[0197]第一更新模塊905,用于根據(jù)第二類終端針對(duì)所述連接請(qǐng)求的響應(yīng),更新所述第二類終端的連接狀態(tài)。
[0198]通過(guò)第一獲取模塊901可以獲取到第一類終端及第二類終端的狀態(tài)信息并通過(guò)第一任務(wù)觸發(fā)模塊902發(fā)送第一任務(wù)觸發(fā)指令給STUN服務(wù)器對(duì)第一類終端進(jìn)行狀態(tài)刷新,然后第一接收模塊903接收來(lái)自STUN服務(wù)器處理的結(jié)果,同時(shí)通過(guò)第二任務(wù)觸發(fā)模塊904發(fā)送第二任務(wù)觸發(fā)指令來(lái)啟動(dòng)多進(jìn)程發(fā)送設(shè)備連接請(qǐng)求,然后第一更新模塊905根據(jù)第二類終端針對(duì)所述連接請(qǐng)求的響應(yīng),判斷有返回連接請(qǐng)求的響應(yīng)消息,則在判定第一類設(shè)備在線,若判斷未返回響應(yīng)消息或者響應(yīng)連接超時(shí)則判定設(shè)備離線。通過(guò)刷新終端的狀態(tài)將對(duì)NAT環(huán)境下終端和非NAT環(huán)境終端分別處理。
[0199]這樣第一任務(wù)觸發(fā)及第二任務(wù)觸發(fā)后,對(duì)NAT環(huán)境設(shè)備,發(fā)送到STUN服務(wù)器上處理。STUN服務(wù)器根據(jù)緩存的設(shè)備心跳信息判讀設(shè)備狀態(tài),并更新至數(shù)據(jù)庫(kù)。對(duì)于非NAT環(huán)境設(shè)備,啟動(dòng)多進(jìn)程,在各進(jìn)程中使用線程池并發(fā)的請(qǐng)求終端,根據(jù)請(qǐng)求結(jié)果,批量更新數(shù)據(jù)庫(kù)。
[0200]通過(guò)對(duì)處于不同的網(wǎng)絡(luò)環(huán)境特性下的終端,分別進(jìn)行處理。在消耗性能的非NAT環(huán)境終端狀態(tài)刷新時(shí)使用了獨(dú)立的多個(gè)進(jìn)程,并在進(jìn)程中使用線程池并發(fā)處理,最大限度的利用了服務(wù)器資源,提高了刷新大量設(shè)備狀態(tài)的效率,節(jié)省了刷新需要消耗的時(shí)間,最大限度的減少了對(duì)網(wǎng)管其它管理業(yè)務(wù)的干擾。
[0201]本發(fā)明的又一實(shí)施例的終端狀態(tài)實(shí)時(shí)刷新裝置中,所述多進(jìn)程的參數(shù)包括:各個(gè)進(jìn)程可處理的第二類終端的閾值,同一時(shí)刻可運(yùn)行的最大進(jìn)程數(shù)、全部所述第二類終端的第一總數(shù)及當(dāng)前開啟的進(jìn)程數(shù)。
[0202]本發(fā)明的又一實(shí)施例的終端狀態(tài)實(shí)時(shí)刷新裝置還包括:
[0203]第二接收模塊,用于根據(jù)第二類終端是否返回針對(duì)所述連接請(qǐng)求的響應(yīng)消息,更新所述第二類終端的連接狀態(tài)時(shí),接收所述多進(jìn)程中的進(jìn)程產(chǎn)生的進(jìn)程結(jié)束消息;
[0204]第一處理模塊,用于根據(jù)所述進(jìn)程結(jié)束消息,判斷所述多進(jìn)程中有未完成的新進(jìn)程時(shí),產(chǎn)生一控制指令來(lái)控制繼續(xù)執(zhí)行新進(jìn)程。
[0205]本發(fā)明的又一實(shí)施例的終端狀態(tài)實(shí)時(shí)刷新裝置中,所述第一更新模塊905包括:
[0206]處理子模塊,用于根據(jù)第二類終端是否返回針對(duì)所述連接請(qǐng)求的響應(yīng)消息,未接收到返回的響應(yīng)消息或者在預(yù)設(shè)時(shí)間段內(nèi)未接收到響應(yīng)消息,則確定無(wú)響應(yīng)消息或者響應(yīng)消息超時(shí)的第二類終端的連接狀態(tài)為離線,緩存所有離線的終端設(shè)備對(duì)應(yīng)的身份標(biāo)識(shí)號(hào)碼ID ;
[0207]確認(rèn)子模塊,用于根據(jù)第二類終端是否返回針對(duì)所述連接請(qǐng)求的響應(yīng)消息,接收到在所述預(yù)設(shè)時(shí)間段內(nèi)的響應(yīng)消息,則確定響應(yīng)所述連接請(qǐng)求的第二類終端的連接狀態(tài)為在線;
[0208]第一更新子模塊,用于通過(guò)線程池發(fā)送所述連接請(qǐng)求給全部第二類終端并判斷是否返回響應(yīng)消息后,根據(jù)所有離線終端對(duì)應(yīng)的身份標(biāo)識(shí)號(hào)碼ID,更新緩存中所有離線的終端的連接狀態(tài)為離線;
[0209]第一獲取子模塊,用于獲取更新完后的所有離線的終端的表述性狀態(tài)轉(zhuǎn)移REST消息,結(jié)束所述多進(jìn)程。
[0210]如圖10所示,相應(yīng)的應(yīng)用于用戶數(shù)據(jù)報(bào)協(xié)議對(duì)網(wǎng)絡(luò)地址轉(zhuǎn)換的簡(jiǎn)單穿越STUN服務(wù)器的本發(fā)明的又一實(shí)施例的終端狀態(tài)實(shí)時(shí)刷新裝置中,包括:
[0211]第三接收模塊91,用于接收網(wǎng)管系統(tǒng)對(duì)網(wǎng)絡(luò)地址轉(zhuǎn)換NAT環(huán)境下的全部第一類終端進(jìn)行刷新的第一任務(wù)觸發(fā)指令并執(zhí)行;
[0212]第二處理模塊92,用于遍歷所述STUN服務(wù)器中緩存的網(wǎng)絡(luò)地址轉(zhuǎn)換NAT環(huán)境下的全部第一類終端上報(bào)的心跳數(shù)據(jù),其中所述心跳數(shù)據(jù)包括每個(gè)第一類終端對(duì)應(yīng)的各自設(shè)備標(biāo)識(shí)及上報(bào)時(shí)間;
[0213]第二獲取模塊93,用于獲取當(dāng)前時(shí)刻的第一類終端的每個(gè)終端的時(shí)間信息;
[0214]確認(rèn)模塊94,用于根據(jù)遍歷到的每個(gè)終端的上報(bào)時(shí)間與當(dāng)前所述時(shí)間信息,確定第一類終端的每個(gè)終端的連接狀態(tài);
[0215]第二更新模塊95,用于根據(jù)確定到的所述第一類終端的每個(gè)終端的連接狀態(tài),更新所述STUN服務(wù)器中全部的第一類終端的連接狀態(tài)。
[0216]其中所述的STUN服務(wù)器111功能包括由UDP心跳監(jiān)聽模塊、UDP心跳處理模塊和NAT終端狀態(tài)刷新模塊組成(如圖11所示),STUN服務(wù)器111啟動(dòng)時(shí),會(huì)啟動(dòng)心跳監(jiān)聽模塊,監(jiān)聽終端上報(bào)的心跳。當(dāng)監(jiān)聽到心跳時(shí),轉(zhuǎn)給UDP心跳處理模塊處理,處理模塊會(huì)緩存心跳中的終端標(biāo)識(shí)、連接地址、上報(bào)時(shí)間等信息。NAT終端狀態(tài)刷新模塊是在接收到任務(wù)發(fā)出的刷新命令后,利用心跳緩存,更新設(shè)備狀態(tài)。
[0217]終端狀態(tài)刷新任務(wù)支持定時(shí)觸發(fā)執(zhí)行和周期執(zhí)行,可根據(jù)需要選擇合適的方式,周期執(zhí)行通過(guò)設(shè)置合適的參數(shù),可以實(shí)現(xiàn)對(duì)大量終端連接狀態(tài)進(jìn)行實(shí)時(shí)的刷新。
[0218]通過(guò)第三接收模塊91接收到第一類終端進(jìn)行刷新的第一任務(wù)觸發(fā)指令,啟動(dòng)所述STUN服務(wù)器,然后通過(guò)STUN服務(wù)器111的第二處理模塊92遍歷全部第一類終端上報(bào)的心跳數(shù)據(jù),并通過(guò)第二獲取模塊93獲取當(dāng)前時(shí)刻的各個(gè)第一類終端的時(shí)間信息,然后通過(guò)確認(rèn)模塊94得到第一類終端的連接狀態(tài),最后第二更新模塊95更新所述STUN服務(wù)器111中全部的第一類終端的連接狀態(tài)。這樣對(duì)于NAT設(shè)備,為了提高處理效率,不和終端交互,充分利用STUN服務(wù)器111中緩存的終端心跳。根據(jù)緩存的設(shè)備信息及上報(bào)時(shí)間判定設(shè)備的狀態(tài),將沒(méi)有按照設(shè)定周期的上報(bào)心跳的設(shè)備更新為離線。從而達(dá)到最大限度的利用STUN服務(wù)器111資源,提高了刷新大量設(shè)備狀態(tài)的效率。
[0219]本發(fā)明的又一實(shí)施例的終端狀態(tài)實(shí)時(shí)刷新裝置中,還包括:
[0220]第三獲取模塊,用于獲取到網(wǎng)絡(luò)地址轉(zhuǎn)換NAT環(huán)境下的全部第一終端上報(bào)的心跳數(shù)據(jù);
[0221]更改模塊,用于更改全部所述第一類終端的連接狀態(tài)為離線。
[0222]本發(fā)明的又一實(shí)施例的終端狀態(tài)實(shí)時(shí)刷新裝置中,所述確認(rèn)模塊94包括:
[0223]判斷子模塊,用于根據(jù)遍歷到的每個(gè)所述終端的上報(bào)時(shí)間與當(dāng)前所述時(shí)間信息的時(shí)間差,判斷每個(gè)終端的所述時(shí)間差是否大于預(yù)設(shè)心跳上報(bào)周期;
[0224]第一確定子模塊,用于在全部所述第一類終端中的多個(gè)第一終端的所述時(shí)間差大于所述預(yù)設(shè)心跳上報(bào)周期時(shí),確定多個(gè)所述第一終端的連接狀態(tài)為離線,并根據(jù)所述第一終端的設(shè)備標(biāo)識(shí)刪除緩存所述第一終端的過(guò)期心跳數(shù)據(jù);
[0225]第二確定子模塊,用于在全部所述第一類終端中的多個(gè)第二終端的所述時(shí)間差小于或者等于所述預(yù)設(shè)心跳上報(bào)周期時(shí),確定多個(gè)所述第二終端的連接狀態(tài)為在線,根據(jù)所述第二終端的設(shè)備標(biāo)識(shí)緩存所述第二終端的在線信息。
[0226]本發(fā)明的又一實(shí)施例的終端狀態(tài)實(shí)時(shí)刷新裝置中,所述第二更新模塊95包括:
[0227]第二更新子模塊,用于更新所述STUN服務(wù)器111中全部所述第一類終端的連接狀態(tài),并將所述STUN服務(wù)器111中緩存的所述第二終端的連接狀態(tài)全部更新為在線。
[0228]本發(fā)明的又一實(shí)施例的終端狀態(tài)實(shí)時(shí)刷新裝置中,所述第二更新模塊95包括:
[0229]第三更新子模塊,用于根據(jù)確定到的所述第一類終端的每個(gè)終端的連接狀態(tài),更新所述STUN服務(wù)器111中全部的第一類終端的連接狀態(tài)至所述網(wǎng)管系統(tǒng)的數(shù)據(jù)庫(kù)中。
[0230]如圖12所示,終端狀態(tài)刷新系統(tǒng)結(jié)構(gòu)圖,主要包括網(wǎng)管系統(tǒng)121、STUN服務(wù)器111和終端。網(wǎng)管系統(tǒng)121主要由數(shù)據(jù)庫(kù)、任務(wù)模塊和網(wǎng)管系統(tǒng)121的基本功能模塊組成。任務(wù)模塊觸發(fā)終端狀態(tài)刷新任務(wù),會(huì)通知STUN服務(wù)器111進(jìn)行狀態(tài)刷新。STUN服務(wù)器111根據(jù)緩存的心跳信息判斷NAT環(huán)境終端狀態(tài),并把狀態(tài)信息批量更新到數(shù)據(jù)庫(kù)中。終端狀態(tài)刷新任務(wù)通知STUN服務(wù)器111后,根據(jù)任務(wù)參數(shù)啟動(dòng)多進(jìn)程,進(jìn)程中會(huì)主動(dòng)和非NAT環(huán)境設(shè)備進(jìn)行交互,判斷設(shè)備狀態(tài),并批量更新到網(wǎng)管系統(tǒng)121的數(shù)據(jù)庫(kù)中。
[0231]需要說(shuō)明的是,本發(fā)明提供的裝置是應(yīng)用上述終端狀態(tài)實(shí)時(shí)刷新方法的裝置,則上述終端狀態(tài)實(shí)時(shí)刷新方法的所有實(shí)施例均適用于該裝置,且均能達(dá)到相同或相似的有益效果。
[0232]以上所述是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明所述原理的前提下,還可以作出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
【主權(quán)項(xiàng)】
1.一種終端狀態(tài)實(shí)時(shí)刷新方法,應(yīng)用于網(wǎng)管系統(tǒng),其特征在于,包括: 獲取網(wǎng)絡(luò)地址轉(zhuǎn)換NAT環(huán)境下的第一類終端的信息和處于非NAT環(huán)境下的第二類終端的信息,其中所述信息包括終端的連接狀態(tài); 發(fā)送對(duì)NAT環(huán)境下的第一類終端進(jìn)行狀態(tài)刷新的第一任務(wù)觸發(fā)指令給用戶數(shù)據(jù)報(bào)協(xié)議對(duì)NAT的簡(jiǎn)單穿越STUN服務(wù)器; 接收所述STUN服務(wù)器返回的所述第一類終端的連接狀態(tài),所述第一類終端的連接狀態(tài)是STUN服務(wù)器根據(jù)所述第一類終端主動(dòng)上報(bào)的心跳數(shù)據(jù)更新得到的;以及 發(fā)送對(duì)非NAT環(huán)境下的第二類終端進(jìn)行狀態(tài)刷新,且攜帶有啟動(dòng)多進(jìn)程的參數(shù)的第二任務(wù)觸發(fā)指令來(lái)啟動(dòng)多進(jìn)程,以利用所述多進(jìn)程的各個(gè)進(jìn)程向第二類終端發(fā)送連接請(qǐng)求;根據(jù)第二類終端針對(duì)所述連接請(qǐng)求的響應(yīng),更新所述第二類終端的連接狀態(tài)。2.根據(jù)權(quán)利要求1所述的終端狀態(tài)實(shí)時(shí)刷新方法,其特征在于,所述多進(jìn)程的參數(shù)包括:各個(gè)進(jìn)程可處理的