用于管理調(diào)度程序的系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,具體而言涉及用于管理調(diào)度程序的系統(tǒng)和方法。
【背景技術(shù)】
[0002]隨著數(shù)以百計的系統(tǒng)被建立來支持企業(yè)(例如,中芯國際)的日常運作和商業(yè)事務(wù),在服務(wù)器端或數(shù)據(jù)庫上所部署的并且以預(yù)定日期/時間重復(fù)運行的程序也急劇增加到數(shù)百。這數(shù)百個程序在后臺運行,沒有提供與人交互的介面及接口,對于工程師或甚至是用戶而言,想要知曉當(dāng)前運行狀態(tài)、歷史運行信息以及性能是困難的。當(dāng)在發(fā)生異常時進(jìn)行故障檢修也是耗時的并且要求額外的資源和精力。然而,這些部署在服務(wù)器上的定時自動執(zhí)行的程序?qū)τ谥貜?fù)準(zhǔn)時執(zhí)行資料運算,以及資料正確與否卻扮演著重要且關(guān)鍵的角色。因此,企業(yè)內(nèi)部需要一個好工具來幫助管理及調(diào)度這些自動化的程序。
[0003]在現(xiàn)有的調(diào)度程序?qū)崿F(xiàn)技術(shù)中,程序由工程師以Java語言或DB過程準(zhǔn)備,準(zhǔn)許管理者在Linux服務(wù)器或Oracle數(shù)據(jù)庫上部署程序并且使用服務(wù)器所提供的命令來建立要在指定時間重復(fù)執(zhí)行的程序。在程序建立之后,關(guān)于調(diào)度程序的信息非常難得。沒有關(guān)于每次運行的開始和結(jié)束時間的信息,沒有知曉每次運行的狀態(tài)的簡單方法,而是必須通過翻找服務(wù)器日志,這是很耗時的。此外,當(dāng)發(fā)生異?;蚪Y(jié)果不是期望的時,故障檢修過程是困難的??赡軣o法還原調(diào)度程序被執(zhí)行時的數(shù)據(jù)和參數(shù)。此外,調(diào)度程序被部署并且運行在不同的服務(wù)器或數(shù)據(jù)庫上并且容易被忘記,因為它們在后臺運行。當(dāng)調(diào)度程序的數(shù)目增加到數(shù)百時,進(jìn)行管理是困難的任務(wù)。
[0004]因此,需要提出一種用于管理調(diào)度程序的方法,以解決上述問題。
【發(fā)明內(nèi)容】
[0005]針對現(xiàn)有技術(shù)的不足,本發(fā)明提供一種用于管理調(diào)度程序的系統(tǒng),包括管理模塊、調(diào)度模塊和日志池。所述管理模塊用于將一個或多個調(diào)度程序中的每一個的配置信息發(fā)送到所述日志池、從所述日志池獲取所述一個或多個調(diào)度程序中的指定調(diào)度程序的執(zhí)行日志的至少一部分、以及基于所述指定調(diào)度程序的執(zhí)行日志的至少一部分監(jiān)控所述指定調(diào)度程序的執(zhí)行狀態(tài)。所述調(diào)度模塊用于從所述日志池獲取所述配置信息、根據(jù)所述配置信息調(diào)度所述一個或多個調(diào)度程序的執(zhí)行、以及將所述一個或多個調(diào)度程序中的每一個的執(zhí)行日志發(fā)送到所述日志池。所述日志池用于存儲所述配置信息和所述一個或多個調(diào)度程序中的每一個的執(zhí)行日志。
[0006]作為優(yōu)選,所述管理模塊進(jìn)一步用于向所述調(diào)度模塊發(fā)送管理命令以使能或禁用所述調(diào)度模塊。
[0007]作為優(yōu)選,所述系統(tǒng)進(jìn)一步包括用戶交互模塊,其能夠與所述管理模塊通信并且用于顯示與所述一個或多個調(diào)度程序相關(guān)聯(lián)的管理界面。
[0008]作為優(yōu)選,所述管理模塊包括內(nèi)建分析模塊,用于根據(jù)所述指定調(diào)度程序的執(zhí)行日志的至少一部分對所述指定調(diào)度程序在選定時段內(nèi)的執(zhí)行時間成本進(jìn)行分析,所述用戶交互模塊進(jìn)一步用于顯示所述內(nèi)建分析模塊對所述執(zhí)行時間成本的分析結(jié)果。
[0009]作為優(yōu)選,所述用戶交互模塊進(jìn)一步用于顯示所述指定調(diào)度程序的執(zhí)行日志的至少一部分。
[0010]作為優(yōu)選,所述用戶交互模塊進(jìn)一步用于接收來自用戶的輸入信息,所述配置信息基于所述輸入信息而生成。
[0011]作為優(yōu)選,所述調(diào)度模塊包括監(jiān)聽器模塊,其中所述管理模塊進(jìn)一步用于將與所述一個或多個調(diào)度程序中的選定調(diào)度程序相關(guān)聯(lián)的控制信息發(fā)送到所述調(diào)度模塊,所述監(jiān)聽器模塊用于監(jiān)聽所述控制信息并且根據(jù)所述控制信息控制所述選定調(diào)度程序的執(zhí)行。
[0012]作為優(yōu)選,所述調(diào)度模塊包括異常監(jiān)控模塊和通知模塊,其中所述異常監(jiān)控模塊用于監(jiān)控所述一個或多個調(diào)度程序中的任何一個的異常,所述通知模塊用于當(dāng)所述異常發(fā)生時,將所述異常通知給發(fā)生異常的調(diào)度程序的配置信息所指定的通知對象。
[0013]作為優(yōu)選,所述調(diào)度模塊進(jìn)一步用于將所述一個或多個調(diào)度程序中的任何一個的同步狀態(tài)發(fā)送到所述日志池或從所述日志池獲取所述同步狀態(tài),所述日志池進(jìn)一步用于存儲所述同步狀態(tài)。
[0014]作為優(yōu)選,所述調(diào)度模塊實現(xiàn)為基于Java技術(shù)和Quartz框架的調(diào)度服務(wù)器。
[0015]作為優(yōu)選,所述調(diào)度模塊實現(xiàn)為基于Java技術(shù)和Quartz框架的調(diào)度服務(wù)器和數(shù)據(jù)庫。
[0016]根據(jù)本發(fā)明另一方面,還提供一種用于管理調(diào)度程序的方法,包括:管理模塊將一個或多個調(diào)度程序中的每一個的配置信息發(fā)送到日志池;調(diào)度模塊從所述日志池獲取所述配置信息并且根據(jù)所述配置信息調(diào)度所述一個或多個調(diào)度程序的執(zhí)行;所述調(diào)度模塊將所述一個或多個調(diào)度程序中的每一個的執(zhí)行日志發(fā)送到所述日志池;以及所述管理模塊從所述日志池獲取所述一個或多個調(diào)度程序中的指定調(diào)度程序的執(zhí)行日志的至少一部分并且基于所述指定調(diào)度程序的執(zhí)行日志的至少一部分監(jiān)控所述指定調(diào)度程序的執(zhí)行狀態(tài)。
[0017]根據(jù)本發(fā)明,可以通過使用管理模塊來集中控制和管理后臺的調(diào)度程序以改進(jìn)程序部署和監(jiān)控的效率和準(zhǔn)確性,其可以幫助管理變得簡單。此外,所部署的調(diào)度程序的執(zhí)行日志能夠保存在日志池中并且與每次執(zhí)行相關(guān)聯(lián),可以利用日志池簡單方便地查看關(guān)于每次單獨執(zhí)行的日志,這有利于降低故障檢修的困難。
【附圖說明】
[0018]本發(fā)明的下列附圖在此作為本發(fā)明的一部分用于理解本發(fā)明。附圖中示出了本發(fā)明的實施例及其描述,用來解釋本發(fā)明的原理。
[0019]附圖中:
[0020]圖1示出了根據(jù)本發(fā)明實施例的用于管理調(diào)度程序的系統(tǒng)的示意性框圖;
[0021]圖2示出了根據(jù)本發(fā)明實施例的用于管理調(diào)度程序的系統(tǒng)的示例性實例;
[0022]圖3是根據(jù)本發(fā)明實施例的示例性內(nèi)建分析功能界面;
[0023]圖4是根據(jù)本發(fā)明實施例的示例性日志歷史界面;以及
[0024]圖5示出了根據(jù)本發(fā)明實施例的用于管理調(diào)度程序的方法的流程圖。
【具體實施方式】
[0025]在下文的描述中,給出了大量具體的細(xì)節(jié)以便提供對本發(fā)明更為徹底的理解。然而,對于本領(lǐng)域技術(shù)人員而言顯而易見的是,本發(fā)明可以無需一個或多個這些細(xì)節(jié)而得以實施。在其他的例子中,為了避免與本發(fā)明發(fā)生混淆,對于本領(lǐng)域公知的一些技術(shù)特征未進(jìn)行描述。
[0026]為了徹底理解本發(fā)明,將在下列的描述中提出詳細(xì)的步驟,以便闡釋本發(fā)明提出的。顯然,本發(fā)明的施行并不限定于計算機(jī)領(lǐng)域的技術(shù)人員所熟習(xí)的特殊細(xì)節(jié)。本發(fā)明的較佳實施例詳細(xì)描述如下,然而除了這些詳細(xì)描述外,本發(fā)明還可以具有其他實施方式。
[0027]應(yīng)當(dāng)理解的是,當(dāng)在本說明書中使用術(shù)語“包含”和/或“包括”時,其指明存在所述特征、整體、步驟、操作、元件和/或組件,但不排除存在或附加一個或多個其他特征、整體、步驟、操作、元件、組件和/或它們的組合。
[0028]下面,參照圖1-5來描述本發(fā)明提出的用于管理調(diào)度程序的系統(tǒng)和方法。本文所述的調(diào)度程序是指可以駐留和運行在計算系統(tǒng)(例如服務(wù)器)上的應(yīng)用、程序、過程、進(jìn)程或線程等。
[0029]在本發(fā)明的一個方面,公開了一種用于管理調(diào)度程序的系統(tǒng)。所述系統(tǒng)包括管理模塊、調(diào)度模塊和日志池。所述管理模塊用于實施以下功能:將一個或多個調(diào)度程序中的每一個的配置信息發(fā)送到所述日志池、從所述日志池獲取所述一個或多個調(diào)度程序中的指定調(diào)度程序的執(zhí)行日志的至少一部分、以及基于所述指定調(diào)度程序的執(zhí)行日志的至少一部分監(jiān)控所述指定調(diào)度程序的執(zhí)行狀態(tài)。所述調(diào)度模塊用于從所述日志池獲取所述配置信息、根據(jù)所述配置信息調(diào)度所述一個或多個調(diào)度程序的執(zhí)行、以及將所述一個或多個調(diào)度程序中的每一個的執(zhí)行日志發(fā)送到所述日志池。所述日志池用于存儲所述配置信息和所述一個或多個調(diào)度程序中的每一個的執(zhí)行日志?,F(xiàn)在結(jié)合圖1描述本發(fā)明所公開的用于管理調(diào)度程序的系統(tǒng)。圖1示出根據(jù)本發(fā)明實施例的用于管理調(diào)度程序的系統(tǒng)100的示意性框圖。系統(tǒng)100包括管理模塊101、調(diào)度模塊102和日志池103。本領(lǐng)域技術(shù)人員應(yīng)該理解,管理模塊101、調(diào)度模塊102和日志池103可獨立地位于不同的服務(wù)器端或位于相同的服務(wù)器端。系統(tǒng)100的實施方式如下所述。調(diào)度模塊102可以用于控制和管理每個本地部署的調(diào)度程序的生命周期。本領(lǐng)域技術(shù)人員應(yīng)該理解,調(diào)度模塊102可以控制任意數(shù)目的調(diào)度程序的執(zhí)行,本文不對此進(jìn)行限制。下文將以調(diào)度模塊102控制調(diào)度程序lOlUOt……104n為例來說明。所述管理模塊101首先將調(diào)度程序lOlUOl……104n的配置信息發(fā)送到所述日志池103。調(diào)度程序包括但不限于以下內(nèi)容:周期性的數(shù)據(jù)收集和數(shù)據(jù)處理;重復(fù)地從內(nèi)部系統(tǒng)收集客戶數(shù)據(jù),并且將數(shù)據(jù)提供給客戶;事件檢測和通知。配置信息可以包