背景
很多时候,项目需要在不同个时刻,执行一个或很多个不同的作业。
Windows执行计划这时并不能很好的满足需求了。 这时候需要一个更为强大,方便管理,集部署的作业调度了。
介绍
Quartz一个开源的作业调度框架,OpenSymphony的开源项目。Quartz.Net 是Quartz的C#移植版本。
它一些很好的特性:
1:支持集群,作业分组,作业远程管理。
2:自定义精细的时间触发器,使用简单,作业和触发分离。
3:数据库支持,可以寄宿Windows服务,WebSite,winform等。
实战
一:一些基础概念。
Scheduler 作业度器。
IJob 作业接口。 继承并实现Execute, 编写执行的具体作业逻辑。
JobBuilder 根据设置,生成一个详细作业信息(JobDetail)。
TriggerBuilder 根据规则,生产对应的Trigger
二:Nuget安装 PM> Install-Package Quartz 。
三:实例 (详细注释,不单独介绍)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
|
1 2 3 4 5 6 7 8 9 10 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
其他
WithCronSchedule("") 强大的时间表达式。
WithSimpleSchedule(x) 一般够用了。
参考资源
Quartz.Net官方2.X教程 http://www.quartz-scheduler.net/documentation/quartz-2.x/tutorial/index.html
Quartz.Net开源地址 https://github.com/quartznet/quartznet
---------------------------------------------------------------------------------
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表。Jobs可以做成标准的Java组件或 EJBs。
Java版本的地址:http://www.quartz-scheduler.org/documentation,.Net版本的地址:http://quartznet.sourceforge.net/ 。
如果手工进行设置Crons表达式,比较繁琐,本文对之前网上提供的Java的Quartz表达生器源代码进行封装打包,
附件中可进行下载,具体如下图:
下载地址:Quartz表达式生成器