Quartz.Net 作業調度后台管理系統,基於Extjs


Quartz.Net是一個開源的、非常靈活的作業調度框架,具體使用方法和教程:http://www.cnblogs.com/shanyou/archive/2007/08/25/quartznettutorial.html

雖然很優秀,但使用過程中沒有找到一個合適的后台任務配置系統,有時是CronExpress的生成,看過:http://www.cronmaker.com/ 等但都不是特別合適,最好是能參考MSSQL里的作業調度來設計。

 

Extjs是最牛逼的RichClient前端開發框架,下面演示下基於Extjs+Quartz.Net開發的任務調度管理系統。

整個系統分:后台作業配置管理系統和Window本地服務組成

一、Quzrtz.Net后台作業配置管理系統界面

1. 作業通知組模塊,一個作業的執行成功、失敗、異常是非常有必要通知到管理員的,並且不同作業需要通知的管理員也不一樣,所有這里我們單獨設置了一個通知組模塊,可以根據需要添加若干的通知服務URL,補充完整參數即可。作業執行過程中將會根據條件,向該URL中POST數據(作業ID,名稱,結果等),對應的URL服務接收到數據,可做具體的操作,比如發送到短信、發送到內部即時通訊工具、發送到微信等等,這些需要企業內部單獨實現。

 

2. 最重要的就是作業配置管理了,作業配置重要的主要是:

  • 作業的服務URL,參數
  • 作業的執行計划,如何產生CronExpress
  • 作業的日志、通知級別

 

  

 

因為CronExpress比較強大和復雜,很多比較特殊的定時計划沒有那么多精力去實現,所以提供了一個自定義CronExpress的功能,方便自己制定特殊的計划,同時為了檢驗是否是預期的計划時間,提供“驗證表達式”功能,可以查看最近100條的執行計划,以便確認是正確的計划。

 

3. 作業執行完成,當然還需要做相應的日志顯示,這個比較簡單,直接將執行結果上傳至后台系統中即可

 

二、Window 服務,任務執行者

任務執行者,說白了就是將服務器中配置的任務列表加入到Quartz.Net計划列表,然后靠Quartz定時去執行服務,那么客戶端和服務端通信需要解決幾個問題

  • 做心跳線,定時檢測服務器端的作業改動(如作業刪除、作業變更了執行計划),改動需要迅速起效,無需重啟window服務
  • 考慮后台服務的多邊形,盡量統一走webservice方式,不要直接讀數據庫
  • 考慮調用服務的安全性,這些定時作業的url服務只能由Quartz.Net的Window服務調用,其他第三者調用應該屏蔽

 

后台服務已經做了標准的webservice接口,及時不用上述的管理后台,只需要提供相應的服務,對於window 服務也是可以用的,管理后台和服務做了很好的解耦。

 

需要源碼或者技術支持的可聯系我QQ:710782046


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM