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接口。
好了,收工,坐等高富帅、屌丝们拍砖!