欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種多線程的監(jiān)控方法及裝置的制作方法

文檔序號:6364192閱讀:230來源:國知局
專利名稱:一種多線程的監(jiān)控方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及多線程技術(shù)領(lǐng)域,尤其涉及一種多線程的監(jiān)控方法及裝置。
背景技術(shù)
隨著科技的發(fā)展,對系統(tǒng)的功能需求越來越多,系統(tǒng)的復(fù)雜度也隨之倍增,為了滿足系統(tǒng)的功能性需求,會在系統(tǒng)中使用多線程技術(shù)。在一個(gè)復(fù)雜的多線程系統(tǒng)中,線程間通信和線程同步等工作在整個(gè)系統(tǒng)中占有相當(dāng)大的比例,并且,線程在提供服務(wù)當(dāng)中經(jīng)常會發(fā)生線程死瑣或線程異常退出等情況。如果某線程異常,即未能正常提供服務(wù),但其它線程仍然向該線程發(fā)送消息請求,這樣就很容易造成任務(wù)緩沖溢出影響業(yè)務(wù)服務(wù),進(jìn)而導(dǎo)致系統(tǒng)崩潰,大大地影響了系統(tǒng)的可靠性。目前,為了防止系統(tǒng)中的線程發(fā)生上述情況,一般采用下述方式對系統(tǒng)中的多線程進(jìn)行監(jiān)控:設(shè)定一線程為監(jiān)控線程,其它線程為被監(jiān)控線程;監(jiān)控線程設(shè)置一個(gè)定時(shí)器,定時(shí)事件一到,向所有的被監(jiān)控線程發(fā)送點(diǎn)名消息,以獲知每個(gè)線程的工作狀態(tài);每個(gè)被監(jiān)控線程收到點(diǎn)名消息后,實(shí)時(shí)回應(yīng)點(diǎn)名應(yīng)答消息,以報(bào)道本線程的工作狀態(tài)和其它信息;當(dāng)被監(jiān)控線程發(fā)生點(diǎn)名應(yīng)答超時(shí)時(shí),監(jiān)控線程累加被監(jiān)控線程的超時(shí)次數(shù),當(dāng)超時(shí)次數(shù)超過預(yù)設(shè)值時(shí),便將被監(jiān)控線程變?yōu)樽鼋┧罓顟B(tài),同時(shí)通知系統(tǒng)的主控線程。上述對線程的監(jiān)控方法存在以下缺點(diǎn):由于未對監(jiān)控線程進(jìn)行監(jiān)控,不能保證監(jiān)控線程正常工作,如果監(jiān)控線程本身出現(xiàn)異常,無法將異常線程通知到系統(tǒng),系統(tǒng)就無法得知異常線程的存在,從而影響了系統(tǒng)的可靠性。

發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種多線程的監(jiān)控方法及裝置,用以解決現(xiàn)有的多線程監(jiān)控方法可靠性不高的問題。 本發(fā)明實(shí)施例提供了一種多線程的監(jiān)控方法,包括:全局可用性管理器監(jiān)控至少一個(gè)本地可用性管理器的運(yùn)行狀態(tài);所述本地可用性管理器用于監(jiān)控向其注冊的服務(wù)線程的運(yùn)行狀態(tài);所述全局可用性管理器在確定本地可用性管理器異常運(yùn)行時(shí),對所述本地可用性管理器進(jìn)行恢復(fù)操作。本發(fā)明實(shí)施例提供了一種多線程的監(jiān)控裝置,包括:全局可用性管理器,用于監(jiān)控至少一個(gè)本地可用性管理器的運(yùn)行狀態(tài),在確定本地可用性管理器異常運(yùn)行時(shí),對所述本地可用性管理器進(jìn)行恢復(fù)操作;至少一個(gè)本地可用性管理器,用于監(jiān)控向其注冊的服務(wù)線程的運(yùn)行狀態(tài)。本發(fā)明實(shí)施例的有益效果包括:本發(fā)明實(shí)施例提供的一種多線程的監(jiān)控方法及裝置,全局可用性管理器監(jiān)控至少一個(gè)本地可用性管理器的運(yùn)行狀態(tài),在確定本地可用性管理器異常運(yùn)行時(shí),對本地可用性管理器進(jìn)行恢復(fù)操作;其中,本地可用性管理器用于監(jiān)控向其注冊的服務(wù)線程的運(yùn)行狀態(tài)。由于采用全局可用性管理器監(jiān)控本地可用性管理器、本地可用性管理器監(jiān)控服務(wù)線程的兩級監(jiān)控結(jié)構(gòu),可以有效地監(jiān)控服務(wù)線程,避免服務(wù)線程和監(jiān)控線程都出現(xiàn)異常時(shí),系統(tǒng)無法得知異常服務(wù)線程的存在,導(dǎo)致系統(tǒng)無法正常提供正常服務(wù)的情況,提高了系統(tǒng)的可靠性。


圖1為本發(fā)明實(shí)施例提供的多線程的監(jiān)控方法的流程圖;圖2為本發(fā)明實(shí)施例提供的全局可用性管理器監(jiān)控本地可用性管理器的運(yùn)行狀態(tài)的流程圖;圖3為本發(fā)明實(shí)施例提供的本地可用性管理器監(jiān)控服務(wù)線程的運(yùn)行狀態(tài)的流程圖;圖4為本發(fā)明實(shí)施例提供的實(shí)例的示意圖;圖5為本發(fā)明實(shí)施例提供多線程的監(jiān)控裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面結(jié)合附圖,對本發(fā)明實(shí)施例提供的多線程的監(jiān)控方法及裝置的具體實(shí)施方式
進(jìn)行詳細(xì)地說明。本發(fā)明實(shí)施例提供的一種多線程的監(jiān)控方法,如圖1所示,具體流程包括以下步驟:S101、全局可用性管理器監(jiān)控至少一個(gè)本地可用性管理器的運(yùn)行狀態(tài);其中,該本地可用性管理器用于監(jiān)控向其注冊的服務(wù)線程的運(yùn)行狀態(tài);S102、全局可用 性管理器判斷本地可用性管理器是否正常運(yùn)行;若確定本地可用性管理器正常運(yùn)行,轉(zhuǎn)向步驟SlOl ;若確定本地可用性管理器異常運(yùn)行,執(zhí)行步驟S103 ;S103、全局可用性管理器對本地可用性管理器進(jìn)行恢復(fù)操作;轉(zhuǎn)向步驟S101。下面對上述各步驟的具體實(shí)現(xiàn)方式進(jìn)行詳細(xì)的說明。具體地,在執(zhí)行本發(fā)明實(shí)施例提供的上述多線程監(jiān)控的步驟SlOl之前,還需要進(jìn)行設(shè)定監(jiān)控任務(wù)的操作,例如:初始化全局可用性管理器,創(chuàng)建用于存儲本地可用性管理器的心跳信息的記錄單元,初始化本地可用性管理器,創(chuàng)建服務(wù)線程等。服務(wù)線程在啟動前,可以向本地可用性管理器提供監(jiān)控操作接口等注冊信息,這樣,本地可用性管理器就可以使用監(jiān)控操作接口監(jiān)控該服務(wù)線程的運(yùn)行狀態(tài)。具體地,在上述步驟SlOl中對于每個(gè)本地可用性管理器,全局可用性管理器都可以通過下述步驟實(shí)現(xiàn)對其運(yùn)行狀態(tài)的監(jiān)控,如圖2所示,具體步驟如下:S201、全局可用性管理器周期性地獲取本地可用性管理器的心跳信息;在具體實(shí)施時(shí),可以使用定時(shí)器進(jìn)行定時(shí),例如:可以設(shè)定定時(shí)時(shí)間間隔為TS1,在每隔TSl時(shí)長后,全局可用性管理器都會進(jìn)行獲取本地可用性管理器的心跳信息的操作。S202、根據(jù)獲取的本地可用性管理器的心跳信息,判斷本地可用性管理器的心跳是否跳動;若是,執(zhí)行步驟S203 ;若否,執(zhí)行步驟S204 ;在具體實(shí)施時(shí),可以對每個(gè)本地可用性管理器創(chuàng)建一個(gè)心跳狀態(tài)單元,每個(gè)單元中具體可以包括:本地可用性管理器的名稱、ID、當(dāng)前心跳計(jì)數(shù)器、上一次心跳計(jì)數(shù)器和異常計(jì)數(shù)器等信息。本地可用性管理器在執(zhí)行完監(jiān)控服務(wù)線程的任務(wù)后,就會改變自身的心跳信息,即觸發(fā)當(dāng)前心跳計(jì)數(shù)器計(jì)數(shù)。這樣,可以比較當(dāng)前心跳計(jì)數(shù)器和上一次心跳計(jì)數(shù)器的數(shù)值是否相同,若相同,則認(rèn)為心跳無跳動;若不同,則認(rèn)為有心跳跳動。以上只是舉例說明如何實(shí)現(xiàn)本地可用性管理器的心跳是否跳動的判斷,本領(lǐng)域技術(shù)人員也可以使用其他方式實(shí)現(xiàn),在此不做限定。S203、確定本地可用性管理器正常運(yùn)行,將本地可用管理器的異常計(jì)數(shù)器清零;轉(zhuǎn)向步驟S201 ;S204、認(rèn)為本地可用性管理器有可能異常退出或發(fā)生死循環(huán),為了避免誤判斷,會向本地可用性管理器發(fā)送詢問消息;具體地,運(yùn)行正常的本地可用性管理器在接收到全局可用性管理器發(fā)送的詢問消息后,就會改變自身的心跳信息,這樣,在下次全局可用性管理器獲取該本地可用性管理器的心跳信息后,就會判斷出該本地可用性管理器存在心跳,確認(rèn)該本地可用性管理器正常運(yùn)行,并將其異常計(jì)數(shù)器清零。S205、觸發(fā)本地可用性管理器的異常計(jì)數(shù)器進(jìn)行計(jì)數(shù);在具體實(shí)施時(shí),可以在異常計(jì)數(shù)器原有的數(shù)值增加一個(gè)數(shù)值;S206、判斷本地可用性管理器的異常計(jì)數(shù)器的數(shù)值是否超過第一設(shè)定門限值,具體地,該第一設(shè)定門限值例如可以設(shè)置為3次,在此不做限定;若是,執(zhí)行步驟S207 ;若否,轉(zhuǎn)向步驟S201 ;S207、確定本地可用性管理器異常運(yùn)行。在執(zhí)行上述步驟S207確定本地可用性管理器異常運(yùn)行之后,全局可用性管理器就會對該本地可用性管理器進(jìn)行恢復(fù)操作,這樣可以有效地避免由于本地可用性管理器異常運(yùn)行,發(fā)生不能正常監(jiān)控服務(wù)線程的情況,從而提高了系統(tǒng)的可靠性。由于恢復(fù)操作屬于現(xiàn)有技術(shù),在此不做詳述。具體地,本發(fā)明實(shí)施例提供的上述方法中,本地可用性管理器用于監(jiān)控向其注冊的服務(wù)線程的運(yùn)行狀態(tài),其監(jiān)控流程和全局可用性管理器執(zhí)行的監(jiān)控流程類似,如圖3所示,具體過程可以通過下述步驟實(shí)現(xiàn):S301、本地可用性管理器周期性地遍歷向其注冊的服務(wù)線程,針對每個(gè)服務(wù)線程執(zhí)行如下操作:S302、獲取服務(wù)線程的心跳信息;類似地,在具體實(shí)施時(shí),可以使用定時(shí)器進(jìn)行定時(shí),例如:可以設(shè)定定時(shí)時(shí)間間隔為TS2,在每隔TS2時(shí)長后,本地可用性管理器都會進(jìn)行獲取服務(wù)線程的心跳信息的操作。S303、根據(jù)獲取的服務(wù)線程的心跳信息,判斷該服務(wù)線程的心跳是否跳動;若是,執(zhí)行步驟S304 ;若否,執(zhí)行步驟S305 ;類似地,在具體實(shí)施時(shí),可以對每個(gè)服務(wù)線程創(chuàng)建一個(gè)心跳狀態(tài)單元,每個(gè)單元中具體可以包括:服務(wù)線程的名稱、ID、當(dāng)前心跳計(jì)數(shù)器、上一次心跳計(jì)數(shù)器、異常計(jì)數(shù)器和通信消息隊(duì)列的句柄等信息。服務(wù)線程在執(zhí)行完服務(wù)任務(wù)后,就會改變自身的心跳信息,即觸發(fā)當(dāng)前心跳計(jì)數(shù)器計(jì)數(shù)。這樣,可以比較當(dāng)前心跳計(jì)數(shù)器和上一次心跳計(jì)數(shù)器的數(shù)值是否相同,若相同,則認(rèn)為心跳無跳動;若不同,則認(rèn)為有心跳跳動。以上只是舉例說明如何實(shí)現(xiàn)服務(wù)線程的心跳是否 跳動的判斷,本領(lǐng)域技術(shù)人員也可以使用其他方式實(shí)現(xiàn),在此不做限定。S304、確定服務(wù)線程正常運(yùn)行,將服務(wù)線程的異常計(jì)數(shù)器清零;轉(zhuǎn)向步驟S301 ;S305、認(rèn)為服務(wù)線程有可能異常退出或發(fā)生死循環(huán),為了避免誤判斷,向服務(wù)線程發(fā)送詢問消息;該詢問消息用于在服務(wù)線程正常時(shí)改變服務(wù)線程的心跳信息;具體地,運(yùn)行正常的服務(wù)線程在接收到本地可用性管理器發(fā)送的詢問消息后,就會改變自身的心跳信息,這樣,在下次本地可用性管理器獲取該服務(wù)線程的心跳信息后,就會判斷出該服務(wù)線程存在心跳,確認(rèn)該服務(wù)線程正常運(yùn)行,并將其異常計(jì)數(shù)器清零。S306、觸發(fā)服務(wù)線程的異常計(jì)數(shù)器進(jìn)行計(jì)數(shù);在具體實(shí)施時(shí),可以在異常計(jì)數(shù)器原有的數(shù)值增加一個(gè)數(shù)值;S307、判斷服務(wù)線程的異常計(jì)數(shù)器的數(shù)值是否超過第二設(shè)定門限值,具體地,該第二設(shè)定門限值可以和第一設(shè)定門限值設(shè)置成相同的數(shù)值,例如3次,也可以設(shè)置成不同的數(shù)值,在此不做限定;若是,執(zhí)行步驟S308 ;若否,轉(zhuǎn)向步驟S301 ;S308、確定服務(wù)線程異常運(yùn)行。在執(zhí)行上述步驟S308之后,還可以進(jìn)行本地可用性管理器對異常的服務(wù)線程進(jìn)行恢復(fù)操作,或者本地可用性管理器將異常的服務(wù)線程直接上報(bào)給系統(tǒng),或?qū)惓5姆?wù)線程通過全局可用性管理器上報(bào)給系統(tǒng),由系統(tǒng)發(fā)出告警信息等處理,在此不做限定?,F(xiàn)有技術(shù)中的多線程監(jiān) 控流程,監(jiān)控線程沒有考慮被監(jiān)控線程的負(fù)載情況,只要定時(shí)一到,就向所有的被監(jiān)控線程發(fā)送點(diǎn)名消息,這樣,會增加被監(jiān)控線程的負(fù)載,影響服務(wù)線程的處理能力。現(xiàn)有技術(shù)中,服務(wù)線程一般既包含定時(shí)提供系統(tǒng)服務(wù)的周期性服務(wù)線程,又包含由外部事件驅(qū)動且提供系統(tǒng)服務(wù)時(shí)間無法預(yù)期的非周期性服務(wù)線程。由于周期性服務(wù)線程在正常運(yùn)行時(shí),只在每個(gè)定時(shí)周期執(zhí)行一次服務(wù)任務(wù),其心跳也就會跟著發(fā)生跳動;只有在發(fā)生異常的情況下,心跳才會停止跳動,因此,對于周期性服務(wù)線程來說無需增加任何操作,就可實(shí)現(xiàn)是否異常的準(zhǔn)確判斷,相對于上述現(xiàn)有技術(shù)中只要定時(shí)一到就向所有的被監(jiān)控線程發(fā)送點(diǎn)名消息而言,不會增加被監(jiān)控線程的負(fù)載,也就不會影響服務(wù)線程的處理能力。由于非周期性服務(wù)線程在一個(gè)本地可用性管理器的監(jiān)控周期內(nèi),其心跳狀態(tài)有可能發(fā)生跳動,也有可能不發(fā)生變化。只有當(dāng)服務(wù)線程心跳不發(fā)生跳動時(shí),本地可用性管理器才會向其發(fā)送詢問消息以改變服務(wù)線程的心跳信息。這樣,本地可用性管理器可以在以后若干個(gè)監(jiān)控周期,判斷其心跳狀態(tài)是否發(fā)生變化,最終判斷服務(wù)線程是否異常,相對于上述現(xiàn)有技術(shù)中只要定時(shí)一到就向所有的被監(jiān)控線程發(fā)送點(diǎn)名消息,也會減輕非周期性服務(wù)線程的負(fù)載。圖4是一個(gè)使用本發(fā)明實(shí)施例提供的多線程監(jiān)控方法的具體實(shí)例,如圖4所示,由本地可用性管理器監(jiān)控服務(wù)線程構(gòu)成第一級監(jiān)控,由全局可用性管理器監(jiān)控本地可用性管理器構(gòu)成第二級監(jiān)控,這樣,全局可用性管理器和本地可用性管理器都可以采用功能單一、結(jié)構(gòu)簡單的方式實(shí)現(xiàn),穩(wěn)定性高。并且采用兩級監(jiān)控的結(jié)構(gòu),可以有效地監(jiān)控服務(wù)線程,避免服務(wù)線程和監(jiān)控線程都出現(xiàn)異常時(shí),系統(tǒng)無法得知異常服務(wù)線程的存在,導(dǎo)致系統(tǒng)無法正常提供正常服務(wù)的情況,提高了系統(tǒng)的可靠性。此外,本發(fā)明實(shí)施例提供的上述多線程監(jiān)控方法能夠應(yīng)用于各種操作系統(tǒng),例如:Windows> Vxfforks 以及 Linux 等?;谕话l(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供了一種多線程的監(jiān)控裝置,由于該裝置解決問題的原理與前述一種多線程得的監(jiān)控方法相似,因此該裝置的實(shí)施可以參見方法的實(shí)施,重復(fù)之處不再贅述。本發(fā)明實(shí)施例提供的一種多線程的監(jiān)控裝置,如圖5所示,包括:全局可用性管理器501,用于監(jiān)控至少一個(gè)本地可用性管理器502的運(yùn)行狀態(tài),在確定本地可用性管理器502異常運(yùn)行時(shí),對所述本地可用性管理器502進(jìn)行恢復(fù)操作;至少一個(gè)本地可用性管理器502,用于監(jiān)控向其注冊的服務(wù)線程503的運(yùn)行狀態(tài)。進(jìn)一步地,本發(fā)明實(shí)施例提供的上述裝置中的全局可用性管理器501,具體用于周期性地獲取本地可用性管理器502的心跳信息;根據(jù)獲取的本地可用性管理器502的心跳信息,判斷本地可用性管理器502的心跳是否跳動;若是,確定該本地可用性管理器502正常運(yùn)行,將本地可用管理器502的異常計(jì)數(shù)器清零;若否,向本地可用性管理器502發(fā)送詢問消息,觸發(fā)本地可用性管理器502的異常計(jì)數(shù)器進(jìn)行計(jì)數(shù),并在計(jì)數(shù)后判斷本地可用性管理器的異常計(jì)數(shù)器502的數(shù)值超過第一設(shè)定門限值時(shí),確定該本地可用性管理器502異常運(yùn)行。進(jìn)一步地,上述本地可用性管理器502,還用于在接收到全局可用性管理器501發(fā)送的詢問消息時(shí),或在每次執(zhí)行監(jiān)控服務(wù) 線程503的任務(wù)后,改變自身的心跳信息。進(jìn)一步地,本發(fā)明實(shí)施例提供的上述裝置中的本地可用性管理器502,具體用于周期性地遍歷向其注冊的服務(wù)線程503,針對每個(gè)服務(wù)線程503執(zhí)行如下操作:根據(jù)獲取的服務(wù)線程503的心跳信息,判斷服務(wù)線程503的心跳是否跳動;若是,確定該服務(wù)線程503正常運(yùn)行,將服務(wù)線程503的異常計(jì)數(shù)器清零;若否,向該服務(wù)線程503發(fā)送用于在服務(wù)線程503正常時(shí)改變服務(wù)線程503的心跳信息的詢問消息,觸發(fā)服務(wù)線程503的異常計(jì)數(shù)器進(jìn)行計(jì)數(shù),并在計(jì)數(shù)后判斷服務(wù)線程503的異常計(jì)數(shù)器的數(shù)值超過第二設(shè)定門限值時(shí),確定該服務(wù)線程503異常運(yùn)行。進(jìn)一步地,上述本地可用性管理器502,還用于在確定服務(wù)線程503異常運(yùn)行時(shí),對該服務(wù)線程503進(jìn)行恢復(fù)操作。進(jìn)一步地,本發(fā)明實(shí)施例提供的上述本地可用性管理器502,具體用于在服務(wù)線程503注冊過程中接收服務(wù)線程503發(fā)送的注冊信息,該注冊信息包括服務(wù)線程503向本地可用性管理器502提供的監(jiān)控操作接口 ;使用監(jiān)控操作接口監(jiān)控服務(wù)線程503的運(yùn)行狀態(tài)。通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明實(shí)施例可以通過硬件實(shí)現(xiàn),也可以借助軟件加必要的通用硬件平臺的方式來實(shí)現(xiàn)?;谶@樣的理解,本發(fā)明實(shí)施例的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲在一個(gè)非易失性存儲介質(zhì)(可以是⑶-R0M,U盤,移動硬盤等)中,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。本領(lǐng)域技術(shù)人員可以理解附圖只是一個(gè)優(yōu)選實(shí)施例的示意圖,附圖中的模塊或流程并不一定是實(shí)施本發(fā)明所必須的。本領(lǐng)域技術(shù)人員可以理解實(shí)施例中的裝置中的模塊可以按照實(shí)施例描述進(jìn)行分布于實(shí)施例的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施例的一個(gè)或多個(gè)裝置中。上述實(shí)施例的模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。上述本發(fā)明實(shí)施例序號僅僅為了描述,不代表實(shí)施例的優(yōu)劣。本發(fā)明實(shí)施例提供的一種多線程的監(jiān)控方法及裝置,全局可用性管理器監(jiān)控至少一個(gè)本地可用性管理器的運(yùn)行狀態(tài),在確定本地可用性管理器異常運(yùn)行時(shí),對本地可用性管理器進(jìn)行恢復(fù)操作;其中,本地可用性管理器用于監(jiān)控向其注冊的服務(wù)線程的運(yùn)行狀態(tài)。由于采用全局可用性管理器監(jiān)控本地可用性管理器、本地可用性管理器監(jiān)控服務(wù)線程的兩級監(jiān)控結(jié)構(gòu),可以有效地監(jiān)控服務(wù)線程,避免服務(wù)線程和監(jiān)控線程都出現(xiàn)異常時(shí),系統(tǒng)無法得知異常服務(wù)線程的存在,導(dǎo)致系統(tǒng)無法正常提供正常服務(wù)的情況,提高了系統(tǒng)的可靠性。顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也 意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1.一種多線程的監(jiān)控方法,其特征在于,包括: 全局可用性管理器監(jiān)控至少一個(gè)本地可用性管理器的運(yùn)行狀態(tài);所述本地可用性管理器用于監(jiān)控向其注冊的服務(wù)線程的運(yùn)行狀態(tài); 所述全局可用性管理器在確定本地可用性管理器異常運(yùn)行時(shí),對所述本地可用性管理器進(jìn)行恢復(fù)操作。
2.如權(quán)利要求1所述的方法,其特征在于,全局可用性管理器監(jiān)控至少一個(gè)本地可用性管理器的運(yùn)行狀態(tài),具體包括: 所述全局可用性管理器周期性地獲取所述本地可用性管理器的心跳信息; 根據(jù)獲取的所述本地可用性管理器的心跳信息,判斷所述本地可用性管理器的心跳是否跳動; 若是,確定所述本地可用性管理器正常運(yùn)行,將所述本地可用管理器的異常計(jì)數(shù)器清零; 若否,向所述本地可用性管理器發(fā)送詢問消息,觸發(fā)所述本地可用性管理器的異常計(jì)數(shù)器進(jìn)行計(jì)數(shù),并在計(jì)數(shù)后判斷所述本地可用性管理器的異常計(jì)數(shù)器的數(shù)值超過第一設(shè)定門限值時(shí),確定所述本地可用性管理器異常運(yùn)行。
3.如權(quán)利要求2所述的方法,其特征在于,還包括: 所述本地可用性管理器在接收到所述全局可用性管理器發(fā)送的詢問消息時(shí),或在每次執(zhí)行監(jiān)控服務(wù)線程的任務(wù)后,改變自身的心跳信息。
4.如權(quán)利要求1-3任·一項(xiàng)所述的方法,其特征在于,所述本地可用性管理器監(jiān)控向其注冊的服務(wù)線程的運(yùn)行狀態(tài),具體包括: 所述本地可用性管理器周期性地遍歷向其注冊的服務(wù)線程,針對每個(gè)服務(wù)線程執(zhí)行如下操作: 根據(jù)獲取的所述服務(wù)線程的心跳信息,判斷所述服務(wù)線程的心跳是否跳動; 若是,確定所述服務(wù)線程正常運(yùn)行,將所述服務(wù)線程的異常計(jì)數(shù)器清零; 若否,向所述服務(wù)線程發(fā)送用于在所述服務(wù)線程正常時(shí)改變所述服務(wù)線程的心跳信息的詢問消息,觸發(fā)所述服務(wù)線程的異常計(jì)數(shù)器進(jìn)行計(jì)數(shù),并在計(jì)數(shù)后判斷所述服務(wù)線程的異常計(jì)數(shù)器的數(shù)值超過第二設(shè)定門限值時(shí),確定所述服務(wù)線程異常運(yùn)行。
5.如權(quán)利要求4所述的方法,其特征在于,還包括: 所述本地可用性管理器在確定所述服務(wù)線程異常運(yùn)行時(shí),對所述服務(wù)線程進(jìn)行恢復(fù)操作。
6.如權(quán)利要求1-3任一項(xiàng)所述的方法,其特征在于,在本地可用性管理器監(jiān)控向其注冊的服務(wù)線程的運(yùn)行狀態(tài)之前,還包括: 所述本地可用性管理器在服務(wù)線程注冊過程中接收所述服務(wù)線程發(fā)送的注冊信息,所述注冊信息包括所述服務(wù)線程向所述本地可用性管理器提供的監(jiān)控操作接口 ; 所述本地可用性管理器監(jiān)控向其注冊的服務(wù)線程的運(yùn)行狀態(tài),包括: 本地可用性管理器使用所述監(jiān)控操作接口監(jiān)控所述服務(wù)線程的運(yùn)行狀態(tài)。
7.一種多線程的監(jiān)控裝置,其特征在于,包括: 全局可用性管理器,用于監(jiān)控至少一個(gè)本地可用性管理器的運(yùn)行狀態(tài),在確定本地可用性管理器異常運(yùn)行時(shí),對所述本地可用性管理器進(jìn)行恢復(fù)操作;至少一個(gè)本地可用性管理器,用于監(jiān)控向其注冊的服務(wù)線程的運(yùn)行狀態(tài)。
8.如權(quán)利要求7所述的裝置,其特征在于,所述全局可用性管理器,具體用于周期性地獲取所述本地可用性管理器的心跳信息;根據(jù)獲取的所述本地可用性管理器的心跳信息,判斷所述本地可用性管理器的心跳是否跳動;若是,確定所述本地可用性管理器正常運(yùn)行,將所述本地可用管理器的異常計(jì)數(shù)器清零;若否,向所述本地可用性管理器發(fā)送詢問消息,觸發(fā)所述本地可用性管理器的異常計(jì)數(shù)器進(jìn)行計(jì)數(shù),并在計(jì)數(shù)后判斷所述本地可用性管理器的異常計(jì)數(shù)器的數(shù)值超過第一設(shè)定門限值時(shí),確定所述本地可用性管理器異常運(yùn)行。
9.如權(quán)利要求8所述的裝置,其特征在于,所述本地可用性管理器,還用于在接收到所述全局可用性管理器發(fā)送的詢問消息時(shí),或在每次執(zhí)行監(jiān)控服務(wù)線程的任務(wù)后,改變自身的心跳信息。
10.如權(quán)利要求7-9任一項(xiàng)所述的裝置,其特征在于,所述本地可用性管理器,具體用于周期性地遍歷向其注冊的服務(wù)線程,針對每個(gè)服務(wù)線程執(zhí)行如下操作:根據(jù)獲取的所述服務(wù)線程的心跳信息,判斷所述服務(wù)線程的心跳是否跳動;若是,確定所述服務(wù)線程正常運(yùn)行,將所述服務(wù)線程的異常計(jì)數(shù)器清零;若否,向所述服務(wù)線程發(fā)送用于在所述服務(wù)線程正常時(shí)改變所述服 務(wù)線程的心跳信息的詢問消息,觸發(fā)所述服務(wù)線程的異常計(jì)數(shù)器進(jìn)行計(jì)數(shù),并在計(jì)數(shù)后判斷所述服務(wù)線程的異常計(jì)數(shù)器的數(shù)值超過第二設(shè)定門限值時(shí),確定所述服務(wù)線程異常運(yùn)行。
11.如權(quán)利要求10所述的裝置,其特征在于,所述本地可用性管理器,還用于在確定所述服務(wù)線程異常運(yùn)行時(shí),對所述服務(wù)線程進(jìn)行恢復(fù)操作。
12.如權(quán)利要求7-9任一項(xiàng)所述的裝置,其特征在于,所述本地可用性管理器,具體用于在服務(wù)線程注冊過程中接收所述服務(wù)線程發(fā)送的注冊信息,所述注冊信息包括所述服務(wù)線程向所述本地可用性管理器提供的監(jiān)控操作接口 ;使用所述監(jiān)控操作接口監(jiān)控所述服務(wù)線程的運(yùn)行狀態(tài)。
全文摘要
本發(fā)明公開了一種多線程的監(jiān)控方法及裝置,全局可用性管理器監(jiān)控至少一個(gè)本地可用性管理器的運(yùn)行狀態(tài),在確定本地可用性管理器異常運(yùn)行時(shí),對本地可用性管理器進(jìn)行恢復(fù)操作;其中,本地可用性管理器用于監(jiān)控向其注冊的服務(wù)線程的運(yùn)行狀態(tài)。由于采用全局可用性管理器監(jiān)控本地可用性管理器、本地可用性管理器監(jiān)控服務(wù)線程的兩級監(jiān)控結(jié)構(gòu),可以有效地監(jiān)控服務(wù)線程,避免服務(wù)線程和監(jiān)控線程都出現(xiàn)異常時(shí),系統(tǒng)無法得知異常服務(wù)線程的存在,導(dǎo)致系統(tǒng)無法正常提供正常服務(wù)的情況,提高了系統(tǒng)的可靠性。
文檔編號G06F11/30GK103246589SQ20121002396
公開日2013年8月14日 申請日期2012年2月3日 優(yōu)先權(quán)日2012年2月3日
發(fā)明者陳炳銳, 賴福琪, 方彬浩 申請人:京信通信系統(tǒng)(中國)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
武宣县| 咸宁市| 杂多县| 隆回县| 巫溪县| 灵山县| 广丰县| 师宗县| 汝州市| 分宜县| 墨玉县| 建宁县| 长葛市| 随州市| 博客| 怀来县| 尼勒克县| 上饶市| 南江县| 松阳县| 巴楚县| 游戏| 滁州市| 靖西县| 自治县| 阿坝| 秦安县| 河源市| 常德市| 汽车| 广州市| 黄山市| 罗山县| 舞钢市| 和政县| 顺义区| 香港| 丰县| 东城区| 堆龙德庆县| 顺昌县|