2年前,本人在博客園大神張善友前輩的博文的牽橋搭線下,初識quartz調度引擎的.net開源版quarzt.net,並馬上被其數據庫支持,集群,插件,cron-like表達式等的亮點所吸引,后來基於Quartz.net 1.0的版本折騰出一個統一任務調度中心,詳見上一篇博文《基於Quartz.net的統一任務調度中 》。然而最近在項目中使用的時候卻發現基於Quartz.net 1.0版本的調度引擎在分布式方面滿足不了需求,於是尋思着將Quartz.net 1.0升級至支持分布式部署的Quartz.net 2.0。現在完成升級了,拿出來與屌絲兄弟們分享我的調度平台,再一一跟大家分享quartz.net的迷人之處。廢話不多說,先上圖:
一,截圖分享
【1】、作業管理
【2】、作業步驟管理
【3】、作業計划管理
【4】、作業調度結果通知
【5】、作業日志
【6】、作業插件管理
【7】、作業插件步驟管理
【8】、作業實例節點管理
二,亮點介紹
【1】、數據庫支持。
這個quartz.net最吸引我的地方,沒數據庫支持,全靠配置文件配置作業計划,作業多了,配置文件就像臭婆娘的裹腳又長又臭,木有人喜歡。 quartz.net2.0目前支持的數據庫有:SQL SERVER(包括CE版本),ORACLE,MySQL,PostgreSQL,FireBird,OleDb,Sqlite
我現在使用的是MySQL,使用的驅動是5.1.6,這是默認的最高驅動,若想升級至最新版的驅動,很簡單,改一下quartz2010項目的dbproviders.properties文件的配置,修改驅動的版本及公鑰等信息即可。
【2】、crontab-like的支持。
用過crontab的兄弟們都知道,crontab表達式幾乎可以滿足各式各樣的調度計划需求。有了crontab的支持,windows計划這種工具則弱爆了;有了crontab的支持,你的調度計划比mssql 2005的調度計划更牛了。quartz.net除了crontab-like觸發器外,還有好幾種。我的第一個截圖的立即執行則是利用simple-trigger實現的。
【3】、分布式部署。
這是quartz.net 2.0才有的功能,不知我理解的對不對,在1.0的版本中,若不改造原數據庫設計,估計沒法支持分布式部署。到了2.0版本,數據庫的表多了個Shed_Name字段,按我的理解應該是跟instanceId關聯的,我將其理解為實例節點,一個節點一個唯一的instanceId,通過與Shed_Name字段關聯實現分布式的部署。
【4】、群集
quartz.net的配置里有個clustered屬性,若為true則可支持群集,不過前提是群集的instanceName須相同,這個我倒沒去研究過。
【5】、插件支持
這個也是非常不錯的功能,有了插件支持,系統變得矯健靈活,支持任意的作業擴展,不過前提是得繼承IJob接口。
好了,收工,坐等高富帥、屌絲們拍磚!