一種基于quartz框架的任務(wù)調(diào)度管理系統(tǒng)及其方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及任務(wù)調(diào)度技術(shù)領(lǐng)域,具體涉及一種基于quartz框架的任務(wù)調(diào)度管理系統(tǒng)及其方法。
【背景技術(shù)】
[0002]隨著電信運營商的系統(tǒng)規(guī)模越來越龐大,業(yè)務(wù)越來越復(fù)雜,需要配置大量的定時調(diào)度任務(wù),但是現(xiàn)有的系統(tǒng),一般存在下面的問題:
[0003](I) shell、sql腳本需要登錄到各個業(yè)務(wù)主機維護,缺少對腳本任務(wù)的統(tǒng)一管理,腳本復(fù)用需要人工拷貝到各個主機,工作量大;
[0004](2)腳本容易被篡改,沒有記錄;
[0005](3)沒有統(tǒng)一的調(diào)度管理,傳統(tǒng)的辦法是在主機上創(chuàng)建很多crontab任務(wù),每個任務(wù)的執(zhí)行狀態(tài)、日志需要手工維護,工作量大;
[0006](4)對于執(zhí)行失敗、執(zhí)行超時的任務(wù)不能及時發(fā)現(xiàn)。
【發(fā)明內(nèi)容】
[0007]本發(fā)明所要解決的技術(shù)問題是提供一種基于quartz框架的任務(wù)調(diào)度管理系統(tǒng)及其方法,能夠?qū)Ω髂_本任務(wù)的調(diào)度進行統(tǒng)一管理,降低了運維人員的工作量,提高了整個任務(wù)調(diào)度的效率。
[0008]本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:
[0009]所述系統(tǒng)包括至少一個調(diào)度管理裝置和數(shù)據(jù)庫;
[0010]所述調(diào)度管理裝置包括:
[0011]腳本管理模塊,用于編輯各腳本任務(wù)并將編輯的所述各腳本任務(wù)存儲于數(shù)據(jù)庫中;
[0012]調(diào)度管理模塊,用于為所述各腳本任務(wù)分配對應(yīng)的任務(wù)執(zhí)行器和執(zhí)行周期;
[0013]調(diào)度管理中心,用于從數(shù)據(jù)庫中加載所有的腳本任務(wù)到quartz框架中,以使quartz框架按照所述執(zhí)行周期將各腳本任務(wù)的執(zhí)行指令下發(fā)給對應(yīng)的任務(wù)執(zhí)行器;以及接收各任務(wù)執(zhí)行器返回的執(zhí)行結(jié)果并將該執(zhí)行結(jié)果存儲于數(shù)據(jù)庫中;
[0014]任務(wù)執(zhí)行器,用于根據(jù)所述執(zhí)行指令執(zhí)行對應(yīng)的腳本任務(wù),并向所述調(diào)度管理中心返回執(zhí)行結(jié)果。
[0015]另一方面,本發(fā)明提供了一種基于quartz的任務(wù)調(diào)度管理方法,所述方法包括:
[0016]S1、對各腳本任務(wù)進行編輯并將編輯的所述各腳本任務(wù)存儲于數(shù)據(jù)庫中;
[0017]S2、為所述各腳本任務(wù)分配對應(yīng)的任務(wù)執(zhí)行器和執(zhí)行周期;
[0018]S3、從數(shù)據(jù)庫中加載各腳本任務(wù)到quartz框架中,以使quartz框架按照所述執(zhí)行周期將各腳本任務(wù)的執(zhí)行指令下發(fā)給對應(yīng)的任務(wù)執(zhí)行器;
[0019]S4、任務(wù)執(zhí)行器根據(jù)所述下發(fā)的執(zhí)行指令對對應(yīng)的腳本任務(wù)進行執(zhí)行,并返回執(zhí)行結(jié)果。
[0020]本發(fā)明提供了一種基于quartz框架的任務(wù)調(diào)度管理系統(tǒng)及其方法,調(diào)度管理系統(tǒng)能夠?qū)崿F(xiàn)對各個腳本任務(wù)的編輯以及分配對應(yīng)的任務(wù)執(zhí)行器,并向分配的任務(wù)執(zhí)行器下發(fā)任務(wù)執(zhí)行指令,任務(wù)執(zhí)行器根據(jù)執(zhí)行指令對對應(yīng)的腳本任務(wù)進行執(zhí)行。通過本發(fā)明提供的系統(tǒng),能夠?qū)崿F(xiàn)對各個腳本任務(wù)執(zhí)行調(diào)度的統(tǒng)一管理,對各腳本任務(wù)進行全局的管控,降低了運維人員的工作量,提高了整個任務(wù)調(diào)度的效率。
【附圖說明】
[0021]圖1為本發(fā)明實施例一的一種基于quartz框架的任務(wù)調(diào)度管理系統(tǒng)示意圖;
[0022]圖2為本發(fā)明實施例二的一種基于quartz框架的任務(wù)調(diào)度管理方法流程圖。
【具體實施方式】
[0023]以下結(jié)合附圖對本發(fā)明的原理和特征進行描述,所舉實例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
[0024]實施例一、一種基于quartz框架的任務(wù)調(diào)度管理系統(tǒng)。下面結(jié)合圖1對本實施例提供的系統(tǒng)進行詳細說明。
[0025]參見圖1,本實施例提供的系統(tǒng)包括調(diào)度管理裝置10和數(shù)據(jù)庫20,其中,調(diào)度管理裝置10包括腳本任務(wù)管理模塊101、權(quán)限管理模塊102、調(diào)度管理模塊103、調(diào)度管理中心104、任務(wù)執(zhí)行器105、日志管理模塊106和告警管理模塊107。
[0026]其中,調(diào)度管理裝置10中的腳本管理模塊101主要用于編輯各腳本任務(wù)并將編輯的各腳本任務(wù)存儲于數(shù)據(jù)庫中。
[0027]具體的,為了實現(xiàn)對各個任務(wù)調(diào)度的統(tǒng)一管理,其中,任務(wù)可以是shell、sql腳本任務(wù),本實施例以腳本任務(wù)的統(tǒng)一調(diào)度為例進行說明。腳本管理模塊101首先需要統(tǒng)一編輯好各個腳本任務(wù)并且將編輯好的各個腳本任務(wù)存儲于數(shù)據(jù)庫20中。另外,還會將編輯的各任務(wù)腳本下發(fā)給調(diào)度管理中心104以作為局部腳本任務(wù)的存儲。腳本管理模塊101還對各個腳本任務(wù)的版本進行管理,以及記錄每個腳本任務(wù)的變更信息,防止各腳本任務(wù)丟失或者被篡改。
[0028]權(quán)限管理模塊102主要用于對各腳本任務(wù)的操作權(quán)限進行管理。
[0029]具體的,當(dāng)腳本管理模塊101編輯好各個腳本任務(wù)后,為了保證各腳本任務(wù)的安全性,權(quán)限管理模塊102對各腳本任務(wù)的操作權(quán)限進行配置,即針對不同的管理角色,配置不同的操作權(quán)限,比如,對各腳本任務(wù)的查看、編輯、刪除、更改及執(zhí)行等分配不同的權(quán)限。
[0030]調(diào)度管理模塊103主要用于為各腳本任務(wù)分配對應(yīng)的任務(wù)執(zhí)行器和執(zhí)行周期。
[0031]具體的,調(diào)度管理模塊103為編輯好的各腳本任務(wù)分配對應(yīng)的任務(wù)執(zhí)行器(即腳本任務(wù)在哪些任務(wù)執(zhí)行器上執(zhí)行)和執(zhí)行周期。為各個腳本任務(wù)配置其執(zhí)行周期,以使后續(xù)的任務(wù)執(zhí)行器可以按照各自的執(zhí)行周期對各腳本任務(wù)進行執(zhí)行。當(dāng)腳本任務(wù)對應(yīng)的任務(wù)執(zhí)行器發(fā)生變更時,比如,新增、修改等,也會對這些更新信息進行同步更新。
[0032]調(diào)度管理中心104主要用于當(dāng)需要進行腳本任務(wù)執(zhí)行時,從數(shù)據(jù)庫20中加載所有的腳本任務(wù)到quartz框架中,以使quartz框架按照前述為各腳本任務(wù)分配的執(zhí)行周期將各腳本任務(wù)的執(zhí)行指令下發(fā)給對應(yīng)的任務(wù)執(zhí)行器105 ;以及接收各任務(wù)執(zhí)行器105返回的執(zhí)行結(jié)果并將該執(zhí)行結(jié)果存儲于數(shù)據(jù)庫20中。
[0033]具體的,當(dāng)需要對各腳本任務(wù)執(zhí)行時,調(diào)度管理中心104從數(shù)據(jù)庫20中加載所有的腳本任務(wù)到調(diào)度管理中心104中的quartz框架中,同時調(diào)度管理中心104還提供增量同步接口,包括腳本任務(wù)的啟用、停止、增加、修改、刪除等操作。
[0034]調(diào)度管理中心104加載完數(shù)據(jù)庫20中的所有腳本任務(wù)后,調(diào)度管理中心104中的quartz框架會定時將任務(wù)執(zhí)行指令下發(fā)給對應(yīng)的任務(wù)執(zhí)行器105。
[0035]需要說明的是,本實施例中配置的調(diào)度管理中心104可以為一個也可以為多個,通常為多個,當(dāng)配置的調(diào)度管理中心104為多個時,選擇其中的一個調(diào)度管理中心104對所有(包括選擇的調(diào)度管理中心)調(diào)度管理中心104進行負載均衡處理。
[0036]各個任務(wù)執(zhí)行器105主要用于根據(jù)調(diào)度管理中心104中的quartz框架下發(fā)的任務(wù)執(zhí)行指令執(zhí)行對應(yīng)的腳本任務(wù),并向調(diào)度管理中心104返回執(zhí)行結(jié)果。
[0037]具體的,當(dāng)任務(wù)執(zhí)行器105接收到quartz框架下發(fā)的任務(wù)執(zhí)行指令后,對對應(yīng)的腳本任務(wù)進行執(zhí)行。其中,任務(wù)執(zhí)行器105對對應(yīng)腳本任務(wù)的執(zhí)行方式通常有兩種,即遠程執(zhí)行和本地執(zhí)行。當(dāng)任務(wù)執(zhí)行器105對對應(yīng)的腳本任務(wù)進行遠程執(zhí)行時,可通過telnet/ssh/ftp命令進行遠程操作并返回執(zhí)行結(jié)果。
[0038]調(diào)度管理中心104接收到各任務(wù)執(zhí)行器105返回的執(zhí)行結(jié)果將執(zhí)行結(jié)果進行匯總分析后存儲于數(shù)據(jù)庫20中以供查詢。
[0039]日志管理中心106主要用于對各任務(wù)執(zhí)行器105執(zhí)行對應(yīng)的腳本任務(wù)的執(zhí)行日志進行管理,比如,通過查看各腳本任務(wù)的執(zhí)行日志了解各腳本任務(wù)的執(zhí)行狀態(tài)等。
[0040]告警管理模塊107主要用于當(dāng)腳本任務(wù)在任務(wù)執(zhí)行器104上執(zhí)行失敗或執(zhí)行超時時,向相關(guān)負責(zé)人發(fā)送告警通知。
[0041