1. 程式人生 > >Quartz.Net分布式任務管理平臺(第二版)

Quartz.Net分布式任務管理平臺(第二版)

增加 rem 技術分享 記錄 下載 探討 類型 cut 安裝

前言:在Quartz.Net項目發布第一版後,有挺多園友去下載使用,我們通過QQ去探討,其中項目中還是存在一定的不完善。所以有了現在這個版本。這個版本的編寫完成其實有段時間了一直沒有放上去。現在已經同步到GitHub上了。那麽還是說一下這個版本改進的地方吧。有些東西之前講過就不在提了,可以移步之前的文章先了解


看一下VS中的項目結構的改變:

技術分享圖片

可以看出我們移除了原先的Quartz.Net_JobBase類庫,Quartz.Net_Web更新為JobManagerByQuaertz,同時添加了Quartz.Net_Core和Quartz.Net_Infrastructure類庫。

此次改進主要提現在了Quartz.Net_Core,Quartz.Net_Infrastructure,Quartz.Net_RemoteServer這三個類庫上,現在們依次看一下相應的功能和改動。

1.Quartz.Net_Core的類庫包含如下:

技術分享圖片

提供了Quartz.Net核心操作:(1)JobCommon中提供了JobKey和TriggerKey的構造(2)JobExcute為原先的Quartz.Net_JobBase實現了Quartz.Net執行任務的接口(3)JobTriggerAbstract為抽象類為Quartz多任務類型提供了公用方法的封裝(4)JobTriggerImplements為具體任務類型實現類,在第一個項目中我們實現了Cron類型也是最為豐富的任務類型,但是有些園友可能需要一種簡單的任務類型比如只執行一次,多長時間內執行多少次到達運行設置的結束次數或者時間自動完成不在執行,此任務類型為Simple,如果園友想實現其他類型 自行添加 集成抽象類即可。

2.Quartz.Net_Infrastructure的類庫圖如下:

技術分享圖片

這個大家應該就很熟悉了,一些基礎設施。(1)HttpClientUtil和RsaCryptionUtil共同構成了http請求和請求加密基礎(2)IPUtil提供了獲取Quartz.Net_RemoteServer部署後運行獲得對應機器的IP便於日誌分析(3)提供發郵件提醒功能會在任務異常,服務掛的時候進行對應郵件提醒(4)QueryableExtensionUtil提供了Queryable擴展方法會在Repository中使用。

3.Quartz.Net_RemoteServer類庫如下:

技術分享圖片

此類庫為Quartz服務端我們相比之前增加了(1)觀察者來觀察任務狀態變化通過執行發送更改狀態,記錄日誌,發送郵件等(2)Job的監聽器來監聽任務執行後操作,Scheduler監聽來監聽節點狀態(3)QuartzServer將主程序入口的節點主要配置 提供節點的暫停,啟動,恢復等操作。其實我們想要分布式我們需要更改這個屬性才能達到不然節點在任何服務器上安裝後的tcp連接都是127.0.0.1+你設置的端口號

技術分享圖片(因為沒有找到具體的文檔在源碼中看到設置的這個屬性)

最後Web層也是提供了操作,異常的全局日誌記錄。

Quartz.Net分布式任務管理平臺(第二版)