專利名稱:一種時(shí)間程序管理方法、服務(wù)器及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本申請(qǐng)涉及計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域,特別涉及一種時(shí)間程序管理方法、管理服務(wù)器及系統(tǒng)。
背景技術(shù):
在目前的計(jì)算機(jī)應(yīng)用中,越來(lái)越多的后臺(tái)任務(wù)不再需要人來(lái)參與,而是由系統(tǒng)自動(dòng)完成,考慮到系統(tǒng)的承載壓力以及處理的實(shí)效性,很多應(yīng)用系統(tǒng)會(huì)產(chǎn)生一些定時(shí)任務(wù)程序,例如定時(shí)執(zhí)行事件提醒,用于在指定的時(shí)間或時(shí)間段來(lái)完成某些系統(tǒng)任務(wù)。這些定時(shí)任務(wù)程序可以利用現(xiàn)有的Quartz等調(diào)度框架形成的時(shí)間程序來(lái)運(yùn)行實(shí)現(xiàn)。Quartz是一個(gè)開源的作業(yè)調(diào)度框架,它提供了巨大的靈活性而不犧牲簡(jiǎn)單性,它可以用來(lái)為執(zhí)行一個(gè)作業(yè)而創(chuàng)建簡(jiǎn)單的或復(fù)雜的調(diào)度。例如,假設(shè)需要應(yīng)用執(zhí)行一個(gè)任務(wù), 這個(gè)任務(wù)每天或每周星期五晚上12 00,或者僅僅每個(gè)月的最后一天執(zhí)行。一個(gè)自動(dòng)執(zhí)行而無(wú)須干預(yù)的任務(wù)在執(zhí)行過(guò)程中此時(shí)可使用Quartz. NET調(diào)度器,根據(jù)時(shí)間間隔(或天)來(lái)調(diào)度作業(yè)。它實(shí)現(xiàn)了作業(yè)和觸發(fā)器的多對(duì)多關(guān)系,還能把多個(gè)作業(yè)與不同的觸發(fā)器關(guān)聯(lián)。整合了 Quartz.NET的應(yīng)用程序可以重用來(lái)自不同事件的作業(yè),還可以為一個(gè)事件組合多個(gè)作業(yè)?,F(xiàn)有技術(shù)中是由某一確定的應(yīng)用服務(wù)器運(yùn)行本地的時(shí)間程序。在實(shí)現(xiàn)本申請(qǐng)的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問(wèn)題當(dāng)某一應(yīng)用服務(wù)器運(yùn)行時(shí)間程序時(shí),若該應(yīng)用服務(wù)器出現(xiàn)故障,則這個(gè)時(shí)間程序也就無(wú)法運(yùn)行了,并且導(dǎo)致一系列的定時(shí)任務(wù)程序終止,這使得對(duì)應(yīng)的系統(tǒng)任務(wù)無(wú)法繼續(xù)完成。
發(fā)明內(nèi)容
為解決上述技術(shù)問(wèn)題,本申請(qǐng)實(shí)施例提供一種時(shí)間程序管理方法、服務(wù)器及系統(tǒng), 以實(shí)現(xiàn)終端運(yùn)行時(shí)間程序時(shí)的容錯(cuò)機(jī)制。技術(shù)方案如下一種時(shí)間程序管理方法,包括管理服務(wù)器接收應(yīng)用服務(wù)器的時(shí)間程序的元信息;根據(jù)時(shí)間程序的元信息,連接至?xí)r間程序所屬的第一應(yīng)用服務(wù)器的時(shí)間程序模塊,所述時(shí)間程序模塊用于管理在該應(yīng)用服務(wù)器的運(yùn)行的時(shí)間程序;對(duì)第一應(yīng)用服務(wù)器的時(shí)間程序模塊中的時(shí)間程序的運(yùn)行進(jìn)行監(jiān)控;當(dāng)監(jiān)測(cè)到所述時(shí)間程序運(yùn)行異常時(shí),選擇具有同樣時(shí)間程序的第二應(yīng)用服務(wù)器接替運(yùn)行該時(shí)間程序。一種時(shí)間程序管理服務(wù)器,包括接收單元,用于接收應(yīng)用服務(wù)器的時(shí)間程序的元信息;連接單元,用于根據(jù)時(shí)間程序的元信息,連接至?xí)r間程序所屬的第一應(yīng)用服務(wù)器的時(shí)間程序模塊,所述時(shí)間程序模塊用于管理在該應(yīng)用服務(wù)器的運(yùn)行的時(shí)間程序;監(jiān)控單元,用于對(duì)第一應(yīng)用服務(wù)器的時(shí)間程序模塊中的時(shí)間程序的運(yùn)行進(jìn)行監(jiān)控;調(diào)度單元,用于當(dāng)監(jiān)測(cè)到所述時(shí)間程序運(yùn)行異常時(shí),選擇具有同樣時(shí)間程序的第二應(yīng)用服務(wù)器接替運(yùn)行該時(shí)間程序。一種時(shí)間程序管理系統(tǒng),包括管理服務(wù)器和至少兩臺(tái)應(yīng)用服務(wù)器,所述管理服務(wù)器,用于接收應(yīng)用服務(wù)器的時(shí)間程序的元信息;根據(jù)時(shí)間程序的元信息,連接至?xí)r間程序所屬的第一應(yīng)用服務(wù)器的時(shí)間程序模塊,所述時(shí)間程序模塊用于管理在該應(yīng)用服務(wù)器的運(yùn)行的時(shí)間程序;對(duì)第一應(yīng)用服務(wù)器的時(shí)間程序模塊中的時(shí)間程序的運(yùn)行進(jìn)行監(jiān)控;當(dāng)監(jiān)測(cè)到所述時(shí)間程序運(yùn)行異常時(shí),選擇具有同樣時(shí)間程序的第二應(yīng)用服務(wù)器接替運(yùn)行該時(shí)間程序。現(xiàn)有技術(shù)中,僅通過(guò)某一確定的終端對(duì)時(shí)間程序進(jìn)行運(yùn)行,當(dāng)該終端出現(xiàn)故障時(shí), 這個(gè)時(shí)間程序也就停止運(yùn)行了,從而導(dǎo)致了一系列的定時(shí)任務(wù)程序終止,對(duì)應(yīng)的系統(tǒng)任務(wù)無(wú)法繼續(xù)完成。與現(xiàn)有技術(shù)相比,由以上本申請(qǐng)實(shí)施例提供的技術(shù)方案具有以下有益效果本申請(qǐng)實(shí)施例通過(guò)增設(shè)管理服務(wù)器,并建立管理服務(wù)器和時(shí)間程序所在的應(yīng)用服務(wù)器的管理群的聯(lián)系,使得管理服務(wù)器可以對(duì)該時(shí)間程序的運(yùn)行狀態(tài)進(jìn)行監(jiān)控,當(dāng)該時(shí)間程序運(yùn)行異常時(shí),管理服務(wù)器可以選擇另一應(yīng)用服務(wù)器接替運(yùn)行該時(shí)間程序,還可以觸發(fā)告警,從而實(shí)現(xiàn)了應(yīng)用服務(wù)器運(yùn)行時(shí)間程序時(shí)的容錯(cuò)機(jī)制,減少了時(shí)間程序中斷的情況,提高了完成一系列定時(shí)任務(wù)程序的保障系數(shù);并且,管理服務(wù)器還可以將監(jiān)控到達(dá)的時(shí)間程序的運(yùn)行狀態(tài)反饋給用戶,也可以根據(jù)用戶設(shè)定的調(diào)度策略對(duì)運(yùn)行的時(shí)間程序進(jìn)行調(diào)度控制,方便了用戶查看和控制時(shí)間程序的運(yùn)行狀態(tài)。
為了更清楚地說(shuō)明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請(qǐng)中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下, 還可以根據(jù)這些附圖獲得其他的附圖。圖1為本申請(qǐng)實(shí)施例實(shí)現(xiàn)時(shí)間程序管理方法的流程圖;圖2為本申請(qǐng)實(shí)施例另一種實(shí)現(xiàn)時(shí)間程序管理方法的流程圖;圖3為本申請(qǐng)實(shí)施例另一種實(shí)現(xiàn)時(shí)間程序管理方法的流程圖;圖4為本申請(qǐng)實(shí)施例的一種管理服務(wù)器的結(jié)構(gòu)示意圖;圖5為本申請(qǐng)實(shí)施例的另一種管理服務(wù)器的結(jié)構(gòu)示意圖;圖6為本申請(qǐng)實(shí)施例的一種時(shí)間程序管理系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了使本技術(shù)領(lǐng)域的人員更好地理解本申請(qǐng)中的技術(shù)方案,下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請(qǐng)保護(hù)的范圍。實(shí)施例一
5
本申請(qǐng)實(shí)施例的方案,應(yīng)用于包括管理服務(wù)器和至少兩臺(tái)應(yīng)用服務(wù)的服務(wù)器系統(tǒng)中,其中,每臺(tái)應(yīng)用服務(wù)器都具有時(shí)間程序,并且,對(duì)于某一特定的時(shí)間程序而言,應(yīng)保證有兩臺(tái)以上的應(yīng)用服務(wù)器上具有該時(shí)間程序。管理服務(wù)器則用于監(jiān)控時(shí)間程序的運(yùn)行,并且對(duì)執(zhí)行時(shí)間程序的應(yīng)用服務(wù)器進(jìn)行選擇和調(diào)度。參見圖1,為本申請(qǐng)實(shí)施例實(shí)現(xiàn)時(shí)間程序管理方法的流程圖。該管理方法可以包括步驟101,管理服務(wù)器接收應(yīng)用服務(wù)器的時(shí)間程序的元信息。應(yīng)用本實(shí)施例方法的所有應(yīng)用服務(wù)器對(duì)本地開發(fā)的時(shí)間程序進(jìn)行收集,并將收集到的時(shí)間程序注冊(cè)到應(yīng)用服務(wù)器本地的時(shí)間程序模塊,同時(shí),應(yīng)用服務(wù)器將本地的時(shí)間程序的元信息發(fā)送到管理服務(wù)器,管理服務(wù)器接收時(shí)間程序的元信息。步驟102,管理服務(wù)器根據(jù)時(shí)間程序的元信息,連接至?xí)r間程序所屬的第一應(yīng)用服務(wù)器的時(shí)間程序模塊。管理服務(wù)器在接收到應(yīng)用服務(wù)器發(fā)送的時(shí)間程序的元信息后,根據(jù)元信息建立與其中一個(gè)應(yīng)用服務(wù)器時(shí)間程序模塊的連接,在本實(shí)施例中,該應(yīng)用服務(wù)器為第一應(yīng)用服務(wù)器,其中,時(shí)間程序在該第一應(yīng)用服務(wù)器中運(yùn)行,該連接的建立為管理服務(wù)器對(duì)第一應(yīng)用服務(wù)器中時(shí)間程序的后續(xù)監(jiān)控提供條件。在本申請(qǐng)實(shí)施例中,以第一應(yīng)用服務(wù)器、第二應(yīng)用服務(wù)器和第三應(yīng)用服務(wù)器等為
例進(jìn)行說(shuō)明,其中“第一”、“第二”和“第三”......僅為區(qū)分不同的應(yīng)用服務(wù)器,并非特指
或限定于某應(yīng)用服務(wù)器。步驟103,管理服務(wù)器對(duì)第一應(yīng)用服務(wù)器的時(shí)間程序模塊中的時(shí)間程序的運(yùn)行進(jìn)行監(jiān)控。在本步驟中,管理服務(wù)器對(duì)時(shí)間程序運(yùn)行的監(jiān)控,可以通過(guò)管理服務(wù)器直接監(jiān)控第一應(yīng)用服務(wù)器時(shí)間程序模塊中的時(shí)間程序來(lái)實(shí)現(xiàn),也可以在管理服務(wù)器側(cè)建立第一應(yīng)用服務(wù)器時(shí)間程序模塊的代理,通過(guò)對(duì)代理中的時(shí)間程序的監(jiān)控來(lái)實(shí)現(xiàn),實(shí)現(xiàn)監(jiān)控的過(guò)程可以由管理服務(wù)器直接接收第一應(yīng)用服務(wù)器的時(shí)間程序模塊輸出的反饋信息,或者管理服務(wù)器接收本地第一應(yīng)用服務(wù)器時(shí)間程序模塊的代理轉(zhuǎn)發(fā)輸出的反饋信息,然后根據(jù)反饋信息判斷應(yīng)用服務(wù)器的時(shí)間程序運(yùn)行是否正常,具體請(qǐng)參見后續(xù)實(shí)施例的描述。步驟104,當(dāng)管理服務(wù)器監(jiān)測(cè)到時(shí)間程序運(yùn)行異常時(shí),選擇具有同樣時(shí)間程序的第二應(yīng)用服務(wù)器接替運(yùn)行該時(shí)間程序。當(dāng)管理服務(wù)器監(jiān)測(cè)到第一應(yīng)用服務(wù)器運(yùn)行該時(shí)間程序出現(xiàn)異常時(shí),由管理服務(wù)器啟動(dòng)具有同樣時(shí)間程序的第二應(yīng)用服務(wù)器運(yùn)行該時(shí)間程序。現(xiàn)有技術(shù)中,僅通過(guò)某一確定的終端對(duì)時(shí)間程序進(jìn)行運(yùn)行,當(dāng)該終端的出現(xiàn)故障時(shí),這個(gè)時(shí)間程序也就無(wú)法運(yùn)行了,從而導(dǎo)致了一系列的定時(shí)任務(wù)程序終止,對(duì)應(yīng)的系統(tǒng)任務(wù)無(wú)法繼續(xù)完成。本申請(qǐng)實(shí)施例通過(guò)注冊(cè)應(yīng)用服務(wù)器管理群,并建立管理服務(wù)器和時(shí)間程序所在的應(yīng)用服務(wù)器管理群的聯(lián)系,使得管理服務(wù)器可以對(duì)該時(shí)間程序的運(yùn)行狀態(tài)進(jìn)行監(jiān)控,當(dāng)該時(shí)間程序運(yùn)行異常時(shí),管理服務(wù)器可以選擇另一應(yīng)用服務(wù)器接替運(yùn)行該時(shí)間程序, 從而實(shí)現(xiàn)了應(yīng)用服務(wù)器運(yùn)行時(shí)間程序時(shí)的容錯(cuò)機(jī)制,減少了時(shí)間程序中斷的情況,提高了完成一系列定時(shí)任務(wù)程序的保障系數(shù)。實(shí)施例二
參見圖2,為本申請(qǐng)實(shí)施例另一種實(shí)現(xiàn)時(shí)間程序管理方法的流程圖。本實(shí)施例可以應(yīng)用于基于JMX的時(shí)間程序的管理,JM作為Java平臺(tái)上為應(yīng)用程序、設(shè)備、系統(tǒng)等植入管理功能的框架,可以跨越一系列異構(gòu)操作系統(tǒng)平臺(tái)、系統(tǒng)體系結(jié)構(gòu)和網(wǎng)絡(luò)傳輸協(xié)議,靈活的開發(fā)無(wú)縫集成的系統(tǒng)、網(wǎng)絡(luò)和服務(wù)管理應(yīng)用。該管理方法可以包括步驟201,管理服務(wù)器接收應(yīng)用服務(wù)器的時(shí)間程序的元信息。本實(shí)施例仍以第一、第二應(yīng)用服務(wù)器為例,兩臺(tái)應(yīng)用服務(wù)器對(duì)本地開發(fā)的時(shí)間程序進(jìn)行收集,并將收集到的時(shí)間程序注冊(cè)為應(yīng)用服務(wù)器本地的時(shí)間程序模塊,并由應(yīng)用服務(wù)器將本地的時(shí)間程序的元信息注冊(cè)到管理服務(wù)器,由管理服務(wù)器執(zhí)行本步驟,接收時(shí)間程序的元信息。其中,在JMX (Java Management Extensions,Java管理擴(kuò)展)規(guī)范中,通常可以建立用于管理應(yīng)用程序等各種管理資源的時(shí)間程序模塊,來(lái)使一些應(yīng)用程序、資源等具有被管理的功能,例如可以編寫一個(gè)MBean (Managed Bean,管理Bean)進(jìn)行管理。在本實(shí)施例中,時(shí)間程序模塊以MBean為例進(jìn)行說(shuō)明。MBean通常是一個(gè)java類,它可以提供接口以使其具有管理功能,MBean屬于一種管理規(guī)范,時(shí)間程序若符合這種規(guī)范則可以實(shí)現(xiàn)被監(jiān)控。 應(yīng)用服務(wù)器通過(guò)將收集到的時(shí)間程序注冊(cè)為應(yīng)用服務(wù)器本地的MBean,使得應(yīng)用服務(wù)器的時(shí)間程序符合MBean的管理規(guī)范。每個(gè)應(yīng)用服務(wù)器要將本地的時(shí)間程序的元信息注冊(cè)到管理服務(wù)器,可以遵循以下邏輯首先,應(yīng)用服務(wù)器在應(yīng)用系統(tǒng)中增加JMX的一個(gè)配置,這個(gè)配置可以是Spring框架的 JMX配置,該配置中有本地JMX管理模塊的bean。配置本地JMX管理模塊的目的是將本地某些應(yīng)用接口注冊(cè)為本地的MBean,例如將第一應(yīng)用服務(wù)器收集到的本地時(shí)間程序注冊(cè)為第一應(yīng)用服務(wù)器本地的MBean。同時(shí),應(yīng)用服務(wù)器還配置一個(gè)管理服務(wù)器的MBean管理模塊的bean,其目的是獲得管理服務(wù)器上的一個(gè)MBean來(lái)與管理服務(wù)器建立連接,以向管理服務(wù)器注冊(cè)收集到的本地時(shí)間程序的元信息。具體地,可以配置時(shí)間程序管理的一個(gè)bean,該 bean是一個(gè)遵循JMX規(guī)范的MBean,其中包含有具體的時(shí)間程序的元數(shù)據(jù)信息。后續(xù)應(yīng)用服務(wù)器可以將時(shí)間程度的元信息發(fā)送至管理服務(wù)器端進(jìn)行注冊(cè)。應(yīng)用服務(wù)器通過(guò)配置上述時(shí)間程序?qū)?yīng)的bean、本地JMX管理模塊的bean以及管理服務(wù)器MBean管理模塊的bean,使應(yīng)用服務(wù)器的時(shí)間程序符合MBean的管理規(guī)范,這樣可以實(shí)現(xiàn)對(duì)時(shí)間程序管理監(jiān)控。時(shí)間程序的元信息可以包括該時(shí)間程序所屬的應(yīng)用,時(shí)間程序所在的應(yīng)用服務(wù)器,具體的時(shí)間程序名稱以及時(shí)間程序在應(yīng)用服務(wù)器的MBean的URL地址和端口號(hào)等。其中,時(shí)間程序所屬的應(yīng)用可以是用戶注冊(cè)應(yīng)用、用戶付款應(yīng)用、用戶購(gòu)買應(yīng)用等,時(shí)間程序的名稱可以是定時(shí)更新、定時(shí)同步等。步驟202,管理服務(wù)器根據(jù)時(shí)間程序的元信息,連接至?xí)r間程序所屬的第一應(yīng)用服務(wù)器的MBean。本實(shí)施例中,第一、第二應(yīng)用服務(wù)器中都包含該時(shí)間程序,管理服務(wù)器在接收到兩應(yīng)用服務(wù)器發(fā)送的時(shí)間程序的元信息后,根據(jù)元信息隨機(jī)或根據(jù)應(yīng)用服務(wù)器的運(yùn)行狀態(tài)選擇一個(gè)應(yīng)用服務(wù)器建立連接,本實(shí)施例中,管理服務(wù)器選擇第一應(yīng)用服務(wù)器,建立與第一應(yīng)用服務(wù)器的MBean的連接,例如,管理服務(wù)器可以根據(jù)元信息中第一應(yīng)用服務(wù)器的時(shí)間程序模塊的URL地址和端口號(hào)連接到該時(shí)間程序所屬的第一應(yīng)用服務(wù)器的MBean。步驟203,管理服務(wù)器對(duì)第一應(yīng)用服務(wù)器的MBean中的時(shí)間程序的運(yùn)行進(jìn)行監(jiān)控。在管理服務(wù)器與第一應(yīng)用服務(wù)器的時(shí)間程序模塊建立連接后,才可以對(duì)該時(shí)間程序模塊中的時(shí)間程序的運(yùn)行進(jìn)行監(jiān)控。具體的,管理服務(wù)器可以接收第一應(yīng)用服務(wù)器的時(shí)間程序模塊輸出的反饋信息,根據(jù)反饋信息判斷第一應(yīng)用服務(wù)器的時(shí)間程序運(yùn)行是否正常,該反饋信息可以是時(shí)間程序的接口的返回值,其中,返回值的作用是返回應(yīng)用服務(wù)器的時(shí)間程序是否正在運(yùn)行的一個(gè)邏輯判斷,例如,正在運(yùn)行則返回true,反之則為false,如果調(diào)用該接口出現(xiàn)異常則返回值為“異?!钡鹊?。在本步驟之前,管理服務(wù)器可以根據(jù)元信息對(duì)各應(yīng)用服務(wù)器注冊(cè)的每個(gè)時(shí)間程序依據(jù)其所屬的應(yīng)用以及時(shí)間程序名稱進(jìn)行分組,可以默認(rèn)一個(gè)應(yīng)用中的每個(gè)時(shí)間程序只在一個(gè)應(yīng)用服務(wù)器中運(yùn)行。例如,假設(shè)A應(yīng)用中有Al和A2兩個(gè)時(shí)間程序,在10個(gè)應(yīng)用服務(wù)器中,分別具有時(shí)間程序Al和/或A2。依據(jù)默認(rèn)的規(guī)則,時(shí)間程序Al只能在一個(gè)應(yīng)用服務(wù)器中運(yùn)行,因此,管理服務(wù)器在這10個(gè)應(yīng)用服務(wù)器中選擇一臺(tái)具有時(shí)間程序Al的應(yīng)用服務(wù)器來(lái)運(yùn)行;同時(shí)時(shí)間程序A2也只能在一個(gè)應(yīng)用服務(wù)器中運(yùn)行,因此,管理服務(wù)器也在這10 個(gè)應(yīng)用服務(wù)器中選擇一臺(tái)具有時(shí)間程序A2的應(yīng)用服務(wù)器來(lái)運(yùn)行。需要說(shuō)明的是,時(shí)間程序 Al和A2有可能在同一個(gè)應(yīng)用服務(wù)器中運(yùn)行,也可能在不同應(yīng)用服務(wù)器運(yùn)行,并且管理服務(wù)器對(duì)運(yùn)行時(shí)間程序的應(yīng)用服務(wù)器的選擇可以是隨機(jī)的也可以是按照設(shè)定順序進(jìn)行的。其中,時(shí)間程序的啟動(dòng)和停止可以由應(yīng)用服務(wù)器控制,管理服務(wù)器只對(duì)運(yùn)行狀態(tài)進(jìn)行監(jiān)控,也可以是時(shí)間程序的啟動(dòng)和停止均由管理服務(wù)器進(jìn)行控制,其運(yùn)行狀態(tài)也由管理服務(wù)器進(jìn)行監(jiān)控。例如,默認(rèn)與管理服務(wù)器建立連接的應(yīng)用服務(wù)器時(shí)間程序模塊上所有的時(shí)間程序的運(yùn)行都需要依賴管理服務(wù)器的控制,可在管理服務(wù)器設(shè)定一個(gè)定時(shí)心跳程序,通過(guò)這個(gè)心跳程序控制應(yīng)用服務(wù)器時(shí)間程序的啟動(dòng)和停止。其中,心跳程序可以定期輪詢應(yīng)用服務(wù)器的時(shí)間程序模塊的時(shí)間程序的接口的返回值情況,依據(jù)返回情況判定這個(gè)時(shí)間程序運(yùn)行是否正常,同時(shí)還可以監(jiān)測(cè)當(dāng)前正在運(yùn)行時(shí)間程序的應(yīng)用服務(wù)器的數(shù)量是否和計(jì)劃的數(shù)量一致,如果監(jiān)測(cè)到時(shí)間程序的某個(gè)應(yīng)用服務(wù)器已經(jīng)失敗,則會(huì)選擇新的具備相同時(shí)間程序的應(yīng)用服務(wù)器來(lái)運(yùn)行,如果監(jiān)測(cè)到當(dāng)前實(shí)際運(yùn)行的應(yīng)用服務(wù)器數(shù)量不等于計(jì)劃數(shù)量,則可以依據(jù)兩數(shù)值的差值以及具有該時(shí)間程序但未運(yùn)行該時(shí)間程序的應(yīng)用服務(wù)器,來(lái)增加啟動(dòng)或停止運(yùn)行該時(shí)間程序的應(yīng)用服務(wù)器。在時(shí)間程序運(yùn)行后,管理服務(wù)器對(duì)其運(yùn)行狀態(tài)進(jìn)行監(jiān)控,該監(jiān)控可以是實(shí)時(shí)監(jiān)控或定時(shí)監(jiān)控。例如,在管理服務(wù)器側(cè)將心跳程序設(shè)定為2分鐘輪詢一次,以定時(shí)監(jiān)控所有的時(shí)間程序的運(yùn)行狀態(tài)以及運(yùn)行的機(jī)器數(shù)量。步驟204,當(dāng)管理服務(wù)器監(jiān)測(cè)到時(shí)間程序運(yùn)行異常時(shí),選擇具有同樣時(shí)間程序的第二應(yīng)用服務(wù)器接替運(yùn)行該時(shí)間程序。當(dāng)管理服務(wù)器監(jiān)測(cè)到某時(shí)間程序運(yùn)行異常時(shí),選擇具有該時(shí)間程序的第二應(yīng)用服務(wù)器接替運(yùn)行該時(shí)間程序,以避免時(shí)間程序的中斷。具體地,時(shí)間程序是否正常運(yùn)行可通過(guò)返回值進(jìn)行判斷,即管理服務(wù)器通過(guò)該時(shí)間程序?qū)?yīng)的應(yīng)用接口的返回值對(duì)時(shí)間程序的運(yùn)行進(jìn)行監(jiān)控,根據(jù)該返回值可以判斷該時(shí)間程序是否運(yùn)行正常。例如監(jiān)測(cè)到時(shí)間程序Al異常,則可選擇具有時(shí)間程序Al的其它的應(yīng)用服務(wù)器來(lái)接替運(yùn)行這個(gè)時(shí)間程序。其中,第二應(yīng)用服務(wù)器運(yùn)行是由管理服務(wù)器來(lái)調(diào)用完成的,因此不需要反饋給第一應(yīng)用服務(wù)器和管理服務(wù)器。管理服務(wù)器可定期輪詢檢測(cè)所有的運(yùn)行應(yīng)用服務(wù)器是否正常運(yùn)行,所以第二應(yīng)用服務(wù)器也在檢測(cè)范圍之內(nèi),如果第二應(yīng)用服務(wù)器運(yùn)行異常,則會(huì)繼續(xù)選擇具有同樣時(shí)間程序的第三應(yīng)用服務(wù)器來(lái)接替其運(yùn)行。當(dāng)管理服務(wù)器選擇某個(gè)應(yīng)用服務(wù)器來(lái)運(yùn)行時(shí)間程序時(shí),則該應(yīng)用服務(wù)器的時(shí)間程序調(diào)度器處于啟動(dòng)狀態(tài),當(dāng)應(yīng)用服務(wù)器設(shè)定的執(zhí)行時(shí)間到達(dá)時(shí),調(diào)度器就會(huì)觸發(fā)時(shí)間程序運(yùn)行。例如,假設(shè)有10個(gè)應(yīng)用服務(wù)器和1個(gè)管理服務(wù)器,當(dāng)10個(gè)應(yīng)用服務(wù)器都將時(shí)間程序的元信息注冊(cè)到管理服務(wù)器上以后,管理服務(wù)器會(huì)隨機(jī)選擇某個(gè)應(yīng)用服務(wù)器并啟動(dòng)該應(yīng)用服務(wù)器上的調(diào)度器,當(dāng)該應(yīng)用服務(wù)器上設(shè)定的執(zhí)行時(shí)間到達(dá)時(shí),調(diào)度器就會(huì)立即觸發(fā)時(shí)間程序運(yùn)行,時(shí)間程序就在管理服務(wù)器所選擇的應(yīng)用服務(wù)器運(yùn)行。管理服務(wù)器會(huì)進(jìn)行定期輪詢,以檢測(cè)當(dāng)前正在運(yùn)行時(shí)間程序的應(yīng)用服務(wù)器是否運(yùn)行正常,如果檢測(cè)到當(dāng)前選擇的應(yīng)用服務(wù)器出現(xiàn)異常,或者應(yīng)用服務(wù)器運(yùn)行失敗,則管理服務(wù)器會(huì)在剩下的9個(gè)應(yīng)用服務(wù)器中另外隨機(jī)的選擇一臺(tái)具有同樣時(shí)間程序的應(yīng)用服務(wù)器來(lái)接替這個(gè)出問(wèn)題的應(yīng)用服務(wù)器運(yùn)行時(shí)間程序,管理服務(wù)器選擇候補(bǔ)應(yīng)用服務(wù)器并啟動(dòng)該后補(bǔ)應(yīng)用服務(wù)器的調(diào)度器,同時(shí)管理服務(wù)器繼續(xù)執(zhí)行定期輪詢用以檢測(cè)當(dāng)前所有正在運(yùn)行的應(yīng)用服務(wù)器是否正常運(yùn)行。本申請(qǐng)的上述實(shí)施例通過(guò)建立管理服務(wù)器和時(shí)間程序所在的應(yīng)用服務(wù)器的時(shí)間程序模塊的聯(lián)系,使得管理服務(wù)器可以對(duì)應(yīng)用服務(wù)器時(shí)間程序模塊中的時(shí)間程序的運(yùn)行狀態(tài)進(jìn)行監(jiān)控,當(dāng)該時(shí)間程序運(yùn)行異常時(shí),管理服務(wù)器可以選擇另一應(yīng)用服務(wù)器接替運(yùn)行該時(shí)間程序,從而實(shí)現(xiàn)了應(yīng)用服務(wù)器運(yùn)行時(shí)間程序時(shí)的容錯(cuò)機(jī)制,減少了時(shí)間程序中斷的情況,提高了完成一系列定時(shí)任務(wù)程序的保障系數(shù)。本實(shí)施例方法可以應(yīng)用于使用Quartz來(lái)完成時(shí)間程序任務(wù)的各類系統(tǒng)中,例如, 在TC (淘寶交易核心系統(tǒng))中,時(shí)間程序可以用于完成交易歷史數(shù)據(jù)的后期處理,交易數(shù)據(jù)生成等功能;在Rate-CenteH淘寶評(píng)價(jià)系統(tǒng))中,時(shí)間程序可以用于完成一些自動(dòng)評(píng)價(jià)的驗(yàn)證生成邏輯,歷史評(píng)價(jià)數(shù)據(jù)后續(xù)處理等功能;在SubCenter-centeH淘寶營(yíng)銷系統(tǒng))中, 時(shí)間程序可以用于自動(dòng)發(fā)送營(yíng)銷信息給特定人群,例如在特定時(shí)間發(fā)送,間歇時(shí)間發(fā)送等。實(shí)施例三圖3為本申請(qǐng)另一種實(shí)現(xiàn)時(shí)間程序管理方法的實(shí)施例流程圖。具體包括以下步驟步驟301,管理服務(wù)器接收時(shí)間程序的元信息。步驟302,管理服務(wù)器根據(jù)時(shí)間程序的元信息連接至?xí)r間程序所屬的第一應(yīng)用服務(wù)器的時(shí)間程序模塊。以上步驟301、302分別與前述實(shí)施例二中的步驟201、步驟202類似,此處不再贅述。步驟303,管理服務(wù)器根據(jù)連接到的所述第一應(yīng)用服務(wù)器的時(shí)間程序模塊生成所述第一應(yīng)用服務(wù)器的時(shí)間程序模塊的代理。管理服務(wù)器接收到第一應(yīng)用服務(wù)器發(fā)來(lái)的時(shí)間程序的元信息后,依據(jù)元信息中的第一應(yīng)用服務(wù)器時(shí)間程序模塊的地址來(lái)連接應(yīng)用服務(wù)器時(shí)間程序模塊,依據(jù)該第一應(yīng)用服務(wù)器時(shí)間程序模塊生成一個(gè)該第一應(yīng)用服務(wù)器的時(shí)間程序模塊代理,并將該時(shí)間程序模塊的代理注冊(cè)到管理服務(wù)器本地的MBean管理模塊上。
第一應(yīng)用服務(wù)器的時(shí)間程序模塊代理相當(dāng)于第一應(yīng)用服務(wù)器時(shí)間程序模塊的一個(gè)副本,管理服務(wù)器通過(guò)對(duì)該代理中的時(shí)間程序的監(jiān)控實(shí)現(xiàn)對(duì)第一應(yīng)用服務(wù)器時(shí)間程序模塊中的時(shí)間程序的監(jiān)控。步驟304,管理服務(wù)器對(duì)所述第一應(yīng)用服務(wù)器時(shí)間程序模塊代理中的時(shí)間程序的運(yùn)行進(jìn)行監(jiān)控。在將第一應(yīng)用服務(wù)器的時(shí)間程序模塊代理注冊(cè)為管理服務(wù)器的本地MBean后,在本步驟中,管理服務(wù)器直接監(jiān)控本地的第一應(yīng)用服務(wù)器時(shí)間程序模塊代理中的時(shí)間程序即可實(shí)現(xiàn)對(duì)第一應(yīng)用服務(wù)器時(shí)間程序的監(jiān)控,該監(jiān)控可以由管理服務(wù)器直接接收本地第一應(yīng)用服務(wù)器時(shí)間程序模塊的代理輸出的反饋信息,然后根據(jù)反饋信息判斷應(yīng)用服務(wù)器的時(shí)間程序運(yùn)行是否正常。其中,反饋信息初始仍然是由第一應(yīng)用服務(wù)器的時(shí)間程序模塊所輸出的,第一應(yīng)用服務(wù)器時(shí)間程序模塊的代理所起到的作用是將反饋信息轉(zhuǎn)發(fā)至管理服務(wù)器。 該反饋信息可以是時(shí)間程序的接口的返回值,其中,返回值的作用是返回應(yīng)用服務(wù)器的時(shí)間程序是否正在運(yùn)行的一個(gè)邏輯判斷,例如,正在運(yùn)行則返回true,反之則為false,如果調(diào)用該接口出現(xiàn)異常則返回值為“異?!钡鹊?。在前述實(shí)施例一、實(shí)施例二中,管理服務(wù)器通過(guò)連接到第一應(yīng)用服務(wù)器時(shí)間程序模塊對(duì)應(yīng)用服務(wù)器運(yùn)行的時(shí)間程序進(jìn)行監(jiān)控。在本實(shí)施例三中,通過(guò)生成第一應(yīng)用服務(wù)器時(shí)間程序模塊的代理并注冊(cè)為管理服務(wù)器本地的MBean,使得管理服務(wù)器可以直接通過(guò)監(jiān)控本地的第一應(yīng)用服務(wù)器時(shí)間程序模塊代理中的時(shí)間程序?qū)崿F(xiàn)對(duì)第一應(yīng)用服務(wù)器時(shí)間程序的監(jiān)控,從而在管理服務(wù)器監(jiān)控多個(gè)時(shí)間程序時(shí),無(wú)需保持與各應(yīng)用服務(wù)器的時(shí)間程序模塊的連接,只需監(jiān)控本地的應(yīng)用服務(wù)器時(shí)間程序模塊代理即可,實(shí)現(xiàn)了管理服務(wù)器對(duì)應(yīng)用服務(wù)器時(shí)間程序的統(tǒng)一管理。步驟305,管理服務(wù)器判斷第一應(yīng)用服務(wù)器時(shí)間程序模塊代理中的時(shí)間程序運(yùn)行是否正常。管理服務(wù)器可以通過(guò)該本地第一應(yīng)用服務(wù)器時(shí)間程序模塊的代理中時(shí)間程序?qū)?yīng)的應(yīng)用接口的返回值判斷代理中的時(shí)間程序的運(yùn)行是否正常,進(jìn)而也即可獲知第一應(yīng)用服務(wù)器時(shí)間程序模塊中的時(shí)間程序是否運(yùn)行正常。如果監(jiān)控到時(shí)間程序的運(yùn)行狀態(tài)正常,則可以繼續(xù)執(zhí)行步驟306 307,如果監(jiān)控到時(shí)間程序的運(yùn)行狀態(tài)異常,則可轉(zhuǎn)入步驟 308 309。步驟306,管理服務(wù)器將監(jiān)控到的時(shí)間程序的運(yùn)行狀態(tài)反饋至控制平臺(tái)或界面?,F(xiàn)有技術(shù)中,在時(shí)間程序運(yùn)行后,沒(méi)有提供一個(gè)入口便于用戶監(jiān)控時(shí)間程序的運(yùn)行狀態(tài),也不能根據(jù)用戶的需求靈活的調(diào)度時(shí)間程序的運(yùn)行。在本實(shí)施例中,為了便于用戶查看和調(diào)整時(shí)間程序的運(yùn)行狀態(tài),管理服務(wù)器可以根據(jù)時(shí)間程序的所屬的應(yīng)用和時(shí)間程序的名稱,為用戶配置權(quán)限,從而使得用戶可以通過(guò)密碼鑒權(quán)等方式從控制平臺(tái)或界面訪問(wèn),監(jiān)控對(duì)應(yīng)的時(shí)間程序的運(yùn)行。管理服務(wù)器在監(jiān)控時(shí)間程序的運(yùn)行時(shí),可以實(shí)時(shí)或定時(shí)地將監(jiān)控到的時(shí)間程序的運(yùn)行狀態(tài),通過(guò)控制平臺(tái)或界面反饋至具有權(quán)限的用戶。其中,時(shí)間程序的運(yùn)行狀態(tài)可以包括運(yùn)行是否正常及運(yùn)行機(jī)器的數(shù)量等信息。步驟307,管理服務(wù)器根據(jù)接收到的調(diào)度策略對(duì)時(shí)間程序進(jìn)行控制。該步驟307與步驟306的順序即可以是并列執(zhí)行,也可以是先后執(zhí)行,并且還可以根據(jù)需要進(jìn)行調(diào)整,此處不作限定。具有權(quán)限的用戶等可以設(shè)定對(duì)時(shí)間程序的調(diào)度策略,并通過(guò)控制平臺(tái)或界面發(fā)送至管理服務(wù)器,管理服務(wù)器接收到該調(diào)度策略后,對(duì)與該用戶權(quán)限對(duì)應(yīng)的時(shí)間程序進(jìn)行調(diào)度。例如,管理服務(wù)器接收到的調(diào)度策略為在時(shí)間程序A運(yùn)行的某過(guò)程中,運(yùn)行的應(yīng)用服務(wù)器數(shù)量由1增加至η ;則管理服務(wù)器在監(jiān)控時(shí)間程序A運(yùn)行到該過(guò)程時(shí),會(huì)再隨機(jī)選擇 η-1個(gè)應(yīng)用服務(wù)器來(lái)運(yùn)行這個(gè)時(shí)間程序。如果重新設(shè)置調(diào)度策略,管理服務(wù)器一般會(huì)在2分鐘后監(jiān)測(cè)到調(diào)度后的效果。步驟308,當(dāng)管理服務(wù)器監(jiān)測(cè)到第一應(yīng)用服務(wù)器時(shí)間程序模塊代理中的時(shí)間程序運(yùn)行異常時(shí),選擇第二應(yīng)用服務(wù)器接替運(yùn)行該時(shí)間程序。該步驟與前述實(shí)施例二中的步驟204類似,此處不再贅述。步驟309,當(dāng)監(jiān)測(cè)到時(shí)間程序運(yùn)行異常時(shí),觸發(fā)告警。當(dāng)管理服務(wù)器監(jiān)測(cè)到時(shí)間程序運(yùn)行異常時(shí),還可以觸發(fā)告警,具體地,管理服務(wù)器可以將告警信息發(fā)送至與管理服務(wù)器連接的控制平臺(tái)或界面,通過(guò)控制平臺(tái)或界面將告警信息呈現(xiàn)給有權(quán)限的用戶或管理人員。本申請(qǐng)實(shí)施例三通過(guò)建立管理服務(wù)器和時(shí)間程序所在的第一應(yīng)用服務(wù)器時(shí)間程序模塊的聯(lián)系,進(jìn)而生成第一應(yīng)用服務(wù)器時(shí)間程序模塊的代理并將其注冊(cè)為管理服務(wù)器本地的MBean,使得管理服務(wù)器可以通過(guò)直接對(duì)本地的第一應(yīng)用服務(wù)器時(shí)間程序模塊代理進(jìn)行監(jiān)控,實(shí)現(xiàn)對(duì)第一應(yīng)用服務(wù)器時(shí)間程序運(yùn)行狀態(tài)的監(jiān)控,當(dāng)該時(shí)間程序運(yùn)行異常時(shí),管理服務(wù)器可以選擇第二應(yīng)用服務(wù)器接替運(yùn)行該時(shí)間程序,并且還可在運(yùn)行異常時(shí)觸發(fā)告警, 從而實(shí)現(xiàn)了應(yīng)用服務(wù)器運(yùn)行時(shí)間程序時(shí)的容錯(cuò)機(jī)制,減少了時(shí)間程序中斷的情況,提高了完成一系列定時(shí)任務(wù)程序的保障系數(shù)。而且,管理服務(wù)器可以將監(jiān)控到的時(shí)間程序的運(yùn)行狀態(tài)通過(guò)控制平臺(tái)或界面反饋給用戶,也可以根據(jù)用戶設(shè)定的調(diào)度策略對(duì)運(yùn)行的時(shí)間程序進(jìn)行調(diào)度控制,方便用戶查看和控制時(shí)間程序的運(yùn)行狀態(tài)。以上是對(duì)本申請(qǐng)方法實(shí)施例的描述,下面對(duì)實(shí)現(xiàn)本申請(qǐng)方法的裝置及系統(tǒng)實(shí)施例進(jìn)行說(shuō)明。實(shí)施例四參見圖4,為本申請(qǐng)實(shí)施例的一種時(shí)間程序管理服務(wù)器的結(jié)構(gòu)示意圖。該時(shí)間程序管理服務(wù)器可以包括接收單元401,用于接收時(shí)間程序的元信息。連接單元402,用于根據(jù)時(shí)間程序的元信息,連接至?xí)r間程序所屬的第一應(yīng)用服務(wù)器的時(shí)間程序模塊,所述時(shí)間程序模塊用于管理在該應(yīng)用服務(wù)器的運(yùn)行的時(shí)間程序。監(jiān)控單元403,用于對(duì)第一應(yīng)用服務(wù)器的時(shí)間程序模塊中的時(shí)間程序的運(yùn)行進(jìn)行監(jiān)控。調(diào)度單元404,用于當(dāng)監(jiān)測(cè)到所述時(shí)間程序運(yùn)行異常時(shí),選擇具有同樣時(shí)間程序的第二應(yīng)用服務(wù)器接替運(yùn)行該時(shí)間程序。應(yīng)用服務(wù)器對(duì)本地開發(fā)的時(shí)間程序進(jìn)行收集,并將收集到的時(shí)間程序注冊(cè)為應(yīng)用服務(wù)器本地的管理群,管理群可以是用于管理應(yīng)用程序等各種管理資源的java類,例如 MBean,同時(shí),應(yīng)用服務(wù)器將本地的時(shí)間程序的元信息注冊(cè)到管理服務(wù)器,由管理服務(wù)器的接收單元401接收該時(shí)間程序的元信息,其中,時(shí)間程序的元信息可以包括該時(shí)間程序所屬的應(yīng)用,時(shí)間程序所在的應(yīng)用服務(wù)器,具體的時(shí)間程序名字,以及時(shí)間程序在應(yīng)用服務(wù)器的管理群的管理管理服務(wù)器的URL地址和端口號(hào)等。接收單元401在接收到應(yīng)用服務(wù)器發(fā)送的時(shí)間程序的元信息后,連接單元402根據(jù)元信息建立與第一應(yīng)用服務(wù)器的管理群的連接,例如,管理服務(wù)器可以根據(jù)元信息中第一應(yīng)用服務(wù)器的管理群的管理管理服務(wù)器的地址和端口號(hào)連接到該時(shí)間程序所屬的第一應(yīng)用服務(wù)器管理群,其中,該時(shí)間程序在第一應(yīng)用服務(wù)器中運(yùn)行。之后,即由監(jiān)控單元403對(duì)時(shí)間程序的運(yùn)行進(jìn)行監(jiān)控,該監(jiān)控可以是實(shí)時(shí)監(jiān)控或定時(shí)監(jiān)控,可以直接對(duì)第一應(yīng)用服務(wù)器的管理群中的時(shí)間程序進(jìn)行監(jiān)控,也可以通過(guò)對(duì)注冊(cè)在管理服務(wù)器本地的第一應(yīng)用服務(wù)器管理群代理中的時(shí)間程序進(jìn)行監(jiān)控。當(dāng)監(jiān)測(cè)到時(shí)間程序運(yùn)行異常時(shí),調(diào)度單元404會(huì)選擇具有同樣時(shí)間程序的第二應(yīng)用服務(wù)器接替運(yùn)行該時(shí)間程序,以避免時(shí)間程序的中斷。本申請(qǐng)上述實(shí)施例通過(guò)上述單元,使得管理服務(wù)器可以對(duì)該時(shí)間程序的運(yùn)行狀態(tài)進(jìn)行監(jiān)控,當(dāng)該時(shí)間程序運(yùn)行異常時(shí),管理服務(wù)器可以選擇另一應(yīng)用服務(wù)器接替運(yùn)行該時(shí)間程序,從而實(shí)現(xiàn)了應(yīng)用服務(wù)器運(yùn)行時(shí)間程序時(shí)的容錯(cuò)機(jī)制,減少了時(shí)間程序中斷的情況, 提高了完成一系列定時(shí)任務(wù)程序的保障系數(shù)。參見圖5,為本申請(qǐng)實(shí)施例的另一種管理服務(wù)器的結(jié)構(gòu)示意圖。該管理服務(wù)器除了可以包括接收單元501、連接單元502、監(jiān)控單元503、調(diào)度單元 504之前,還可以包括報(bào)警單元505、反饋單元506和控制單元507。其中,接收單元501、連接單元502、調(diào)度單元504與前述實(shí)施例類似,此處不再贅述。本實(shí)施例中,監(jiān)控單元503又可以包括代理生成子單元5031,用于根據(jù)連接到的所述第一應(yīng)用服務(wù)器的時(shí)間程序模塊生成所述第一應(yīng)用服務(wù)器的時(shí)間程序模塊的代理;注冊(cè)子單元5032,用于將所述第一應(yīng)用服務(wù)器的時(shí)間程序模塊的代理注冊(cè)為本地
管理群;監(jiān)控子單元5033,用于對(duì)所述第一應(yīng)用服務(wù)器的時(shí)間程序模塊的代理中的時(shí)間程序的運(yùn)行進(jìn)行監(jiān)控。報(bào)警單元505,用于當(dāng)監(jiān)測(cè)到時(shí)間程序運(yùn)行異常時(shí),觸發(fā)警報(bào)。反饋單元506,用于將監(jiān)控到的所述時(shí)間程序的運(yùn)行狀態(tài)反饋至具有訪問(wèn)權(quán)限的控制平臺(tái)??刂茊卧?07,用于根據(jù)接收到的調(diào)度策略對(duì)時(shí)間程序進(jìn)行控制。本實(shí)施例中的管理群以MBean為例進(jìn)行說(shuō)明。在連接單元502連接到第一應(yīng)用服務(wù)器MBean后,代理生成子單元5031依據(jù)該MBean生成一個(gè)該第一應(yīng)用服務(wù)器MBean的代理,并由注冊(cè)子單元5032將該代理注冊(cè)到本地的MBean krver上。監(jiān)控子單元5033直接監(jiān)控管理服務(wù)器本地的第一應(yīng)用服務(wù)器MBean代理即可實(shí)現(xiàn)對(duì)應(yīng)用服務(wù)器時(shí)間程序的監(jiān)控。管理服務(wù)器可以在先根據(jù)時(shí)間程序所屬的應(yīng)用和時(shí)間程序名稱,為指定用戶配置權(quán)限,從而反饋單元506可以實(shí)時(shí)或定時(shí)將監(jiān)控到的時(shí)間程序的運(yùn)行狀態(tài),例如是否運(yùn)行正常及運(yùn)行機(jī)器的數(shù)量,通過(guò)一定的控制平臺(tái)或界面反饋至具有權(quán)限的用戶,從而方便具有權(quán)限的用戶通過(guò)該控制平臺(tái)或界面訪問(wèn)或監(jiān)控對(duì)應(yīng)的時(shí)間程序的運(yùn)行。而且,控制單元507 還可以接收到具有權(quán)限的用戶等設(shè)定的調(diào)度策略后,對(duì)時(shí)間程序進(jìn)行調(diào)度。當(dāng)監(jiān)控子單元 5033監(jiān)測(cè)到時(shí)間程序運(yùn)行異常時(shí),調(diào)度單元504會(huì)選擇另一應(yīng)用服務(wù)器(也即第二應(yīng)用服務(wù)器)接替運(yùn)行該時(shí)間程序,并由報(bào)警單元505發(fā)出警報(bào)。本申請(qǐng)上述實(shí)施例通過(guò)上述單元實(shí)現(xiàn)了對(duì)應(yīng)用服務(wù)器時(shí)間程序運(yùn)行狀態(tài)的監(jiān)控, 當(dāng)該時(shí)間程序運(yùn)行異常時(shí),管理服務(wù)器可以選擇另一應(yīng)用服務(wù)器接替運(yùn)行該時(shí)間程序,并且在運(yùn)行異常時(shí)觸發(fā)警報(bào),從而實(shí)現(xiàn)了應(yīng)用服務(wù)器運(yùn)行時(shí)間程序時(shí)的容錯(cuò)機(jī)制,減少了時(shí)間程序中斷的情況,提高了完成一系列定時(shí)任務(wù)程序的保障系數(shù)。而且,管理服務(wù)器可以將監(jiān)控到達(dá)的時(shí)間程序的運(yùn)行狀態(tài)反饋給用戶,也可以根據(jù)用戶設(shè)定的調(diào)度策略對(duì)運(yùn)行的時(shí)間程序進(jìn)行調(diào)度控制,方便了用戶查看和控制時(shí)間程序的運(yùn)行狀態(tài)。參見圖6,為本申請(qǐng)實(shí)施例的一種時(shí)間程序管理系統(tǒng)的結(jié)構(gòu)示意圖。該系統(tǒng)可以包括管理服務(wù)器601和第一應(yīng)用服務(wù)器602、第二應(yīng)用服務(wù)器603。管理服務(wù)器601,用于接收應(yīng)用服務(wù)器的時(shí)間程序的元信息;根據(jù)時(shí)間程序的元信息,連接至?xí)r間程序所屬的第一應(yīng)用服務(wù)器的時(shí)間程序模塊,所述時(shí)間程序模塊用于管理在該應(yīng)用服務(wù)器的運(yùn)行的時(shí)間程序;對(duì)第一應(yīng)用服務(wù)器的時(shí)間程序模塊中的時(shí)間程序的運(yùn)行進(jìn)行監(jiān)控;當(dāng)監(jiān)測(cè)到所述時(shí)間程序運(yùn)行異常時(shí),選擇具有同樣時(shí)間程序的第二應(yīng)用服務(wù)器接替運(yùn)行該時(shí)間程序。第一應(yīng)用服務(wù)器602用于收集本地的時(shí)間程序,將收集到的時(shí)間程序注冊(cè)生成第一應(yīng)用服務(wù)器602的管理群,并將時(shí)間程序的元信息發(fā)送至管理服務(wù)器601。第二應(yīng)用服務(wù)器603類似。本申請(qǐng)上述實(shí)施例通過(guò)建立管理服務(wù)器601和時(shí)間程序所在的第一應(yīng)用服務(wù)器 602的管理群,例如MBean的聯(lián)系,使得管理服務(wù)器601可以對(duì)該時(shí)間程序的運(yùn)行狀態(tài)進(jìn)行監(jiān)控,當(dāng)該時(shí)間程序運(yùn)行異常時(shí),管理服務(wù)器601可以選擇具有該時(shí)間程序的第二應(yīng)用服務(wù)器603接替運(yùn)行該時(shí)間程序,從而實(shí)現(xiàn)了應(yīng)用服務(wù)器運(yùn)行時(shí)間程序時(shí)的容錯(cuò)機(jī)制,減少了時(shí)間程序中斷的情況,提高了完成一系列定時(shí)任務(wù)程序的保障系數(shù)。在本申請(qǐng)的另一實(shí)施例中,管理服務(wù)器還可以通過(guò)生成第一應(yīng)用服務(wù)器管理群的代理并將該代理注冊(cè)為管理服務(wù)器本地管理群,從而可以直接對(duì)代理管理群監(jiān)控實(shí)現(xiàn)對(duì)應(yīng)用服務(wù)器時(shí)間程序運(yùn)行的監(jiān)控,而且在運(yùn)行出現(xiàn)異常時(shí),管理服務(wù)器還可以觸發(fā)警報(bào)。該系統(tǒng)中,管理服務(wù)器還可以在先為用戶配置權(quán)限,在管理服務(wù)器監(jiān)控時(shí)間程序運(yùn)行時(shí),可以將運(yùn)行狀態(tài)反饋至具有相應(yīng)權(quán)限的用戶,并可以根據(jù)用戶等設(shè)定的調(diào)度策略對(duì)該時(shí)間程序進(jìn)行調(diào)度控制。為了描述的方便,描述以上裝置時(shí)以功能分為各種單元分別描述。當(dāng)然,在實(shí)施本申請(qǐng)時(shí)可以把各單元的功能在同一個(gè)或多個(gè)軟件和/或硬件中實(shí)現(xiàn)。通過(guò)以上的實(shí)施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請(qǐng)可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn)?;谶@樣的理解,本申請(qǐng)的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)服務(wù)器執(zhí)行本申請(qǐng)各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。本說(shuō)明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于裝置或系統(tǒng)實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說(shuō)明即可。以上所描述的裝置及系統(tǒng)實(shí)施例僅僅是示意性的,其中所述作為
13分離部件說(shuō)明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。 以上所述僅是本申請(qǐng)的具體實(shí)施方式
,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本申請(qǐng)?jiān)淼那疤嵯拢€可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本申請(qǐng)的保護(hù)范圍。
權(quán)利要求
1.一種時(shí)間程序管理方法,其特征在于,包括 管理服務(wù)器接收應(yīng)用服務(wù)器的時(shí)間程序的元信息;根據(jù)時(shí)間程序的元信息,連接至?xí)r間程序所屬的第一應(yīng)用服務(wù)器的時(shí)間程序模塊,所述時(shí)間程序模塊用于管理在該應(yīng)用服務(wù)器的運(yùn)行的時(shí)間程序;對(duì)第一應(yīng)用服務(wù)器的時(shí)間程序模塊中的時(shí)間程序的運(yùn)行進(jìn)行監(jiān)控; 當(dāng)監(jiān)測(cè)到所述時(shí)間程序運(yùn)行異常時(shí),選擇具有同樣時(shí)間程序的第二應(yīng)用服務(wù)器接替運(yùn)行該時(shí)間程序。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對(duì)第一應(yīng)用服務(wù)器的時(shí)間程序模塊中的時(shí)間程序的運(yùn)行進(jìn)行監(jiān)控,包括管理服務(wù)器根據(jù)連接到的所述第一應(yīng)用服務(wù)器的時(shí)間程序模塊生成所述第一應(yīng)用服務(wù)器的時(shí)間程序模塊的代理;將所述第一應(yīng)用服務(wù)器的時(shí)間程序模塊的代理注冊(cè)為本地管理群; 對(duì)所述第一應(yīng)用服務(wù)器的時(shí)間程序模塊的代理中的時(shí)間程序的運(yùn)行進(jìn)行監(jiān)控。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,還包括 當(dāng)管理服務(wù)器監(jiān)測(cè)到所述時(shí)間程序運(yùn)行異常時(shí),觸發(fā)警報(bào)。
4.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,還包括將管理服務(wù)器監(jiān)控到的所述時(shí)間程序的運(yùn)行狀態(tài)反饋至具有訪問(wèn)權(quán)限的控制平臺(tái)。
5.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,還包括 管理服務(wù)器根據(jù)接收到的調(diào)度策略對(duì)所述時(shí)間程序進(jìn)行控制。
6.一種時(shí)間程序管理服務(wù)器,其特征在于,包括 接收單元,用于接收應(yīng)用服務(wù)器的時(shí)間程序的元信息;連接單元,用于根據(jù)時(shí)間程序的元信息,連接至?xí)r間程序所屬的第一應(yīng)用服務(wù)器的時(shí)間程序模塊,所述時(shí)間程序模塊用于管理在該應(yīng)用服務(wù)器的運(yùn)行的時(shí)間程序;監(jiān)控單元,用于對(duì)第一應(yīng)用服務(wù)器的時(shí)間程序模塊中的時(shí)間程序的運(yùn)行進(jìn)行監(jiān)控; 調(diào)度單元,用于當(dāng)監(jiān)測(cè)到所述時(shí)間程序運(yùn)行異常時(shí),選擇具有同樣時(shí)間程序的第二應(yīng)用服務(wù)器接替運(yùn)行該時(shí)間程序。
7.根據(jù)權(quán)利要求6所述的管理服務(wù)器,其特征在于,所述監(jiān)控單元包括代理生成子單元,用于根據(jù)連接到的所述第一應(yīng)用服務(wù)器的時(shí)間程序模塊生成所述第一應(yīng)用服務(wù)器的時(shí)間程序模塊的代理;注冊(cè)子單元,用于將所述第一應(yīng)用服務(wù)器的時(shí)間程序模塊的代理注冊(cè)為本地管理群; 監(jiān)控子單元,用于對(duì)所述第一應(yīng)用服務(wù)器的時(shí)間程序模塊的代理中的時(shí)間程序的運(yùn)行進(jìn)行監(jiān)控。
8.根據(jù)權(quán)利要求6或7所述的管理服務(wù)器,其特征在于,還包括 報(bào)警單元,用于當(dāng)監(jiān)測(cè)到所述時(shí)間程序運(yùn)行異常時(shí),觸發(fā)警報(bào)。
9.根據(jù)權(quán)利要求6或7所述的管理服務(wù)器,其特征在于,還包括反饋單元,用于將監(jiān)控到的所述時(shí)間程序的運(yùn)行狀態(tài)反饋至具有訪問(wèn)權(quán)限的控制平臺(tái)。
10.一種時(shí)間程序管理系統(tǒng),其特征在于,包括管理服務(wù)器和至少兩臺(tái)應(yīng)用服務(wù)器, 所述管理服務(wù)器,用于接收應(yīng)用服務(wù)器的時(shí)間程序的元信息;根據(jù)時(shí)間程序的元信息,連接至?xí)r間程序所屬的第一應(yīng)用服務(wù)器的時(shí)間程序模塊,所述時(shí)間程序模塊用于管理在該應(yīng)用服務(wù)器的運(yùn)行的時(shí)間程序;對(duì)第一應(yīng)用服務(wù)器的時(shí)間程序模塊中的時(shí)間程序的運(yùn)行進(jìn)行監(jiān)控;當(dāng)監(jiān)測(cè)到所述時(shí)間程序運(yùn)行異常時(shí),選擇具有同樣時(shí)間程序的第二應(yīng)用服務(wù)器接替運(yùn)行該時(shí)間程序。
全文摘要
本申請(qǐng)公開了一種時(shí)間程序管理方法、服務(wù)器及系統(tǒng)。該時(shí)間程序管理方法,包括管理服務(wù)器接收應(yīng)用服務(wù)器的時(shí)間程序的元信息;根據(jù)時(shí)間程序的元信息,連接至?xí)r間程序所屬的第一應(yīng)用服務(wù)器的時(shí)間程序模塊,所述時(shí)間程序模塊用于管理在該應(yīng)用服務(wù)器的運(yùn)行的時(shí)間程序;對(duì)第一應(yīng)用服務(wù)器的時(shí)間程序模塊中的時(shí)間程序的運(yùn)行進(jìn)行監(jiān)控;當(dāng)監(jiān)測(cè)到所述時(shí)間程序運(yùn)行異常時(shí),選擇具有同樣時(shí)間程序的第二應(yīng)用服務(wù)器接替運(yùn)行該時(shí)間程序。本申請(qǐng)技術(shù)方案實(shí)現(xiàn)了應(yīng)用服務(wù)器運(yùn)行時(shí)間程序時(shí)的容錯(cuò)機(jī)制,減少了時(shí)間程序中斷的情況,提高了完成一系列定時(shí)任務(wù)程序的保障系數(shù)。
文檔編號(hào)G06F11/16GK102346698SQ201010244268
公開日2012年2月8日 申請(qǐng)日期2010年7月30日 優(yōu)先權(quán)日2010年7月30日
發(fā)明者房長(zhǎng)江 申請(qǐng)人:阿里巴巴集團(tuán)控股有限公司