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