Net作业调度(一) -Quartz.Net入门
背景
很多时候,项目需要在不同时刻,执行一个或很多个不同的作业。
Windows执行计划这时并不能很好的满足需求了,迫切需要一个更为强大,方便管理,集群部署的作业调度框架。
介绍
Quartz 一个开源的作业调度框架,OpenSymphony的开源项目。Quartz.Net 是Quartz的C#移植版本。
它一些很好的特性:
1:支持集群,作业分组,作业远程管理。
2:自定义精细的时间触发器,使用简单,作业和触发分离。
3:数据库支持,可以寄宿Windows服务,WebSite,winform等。
实战
Quartz框架的一些基础概念解释:
Scheduler 作业调度器。
IJob 作业接口,继承并实现Execute, 编写执行的具体作业逻辑。
JobBuilder 根据设置,生成一个详细作业信息(JobDetail)。
TriggerBuilder 根据规则,生产对应的Trigger
Nuget安装
PM> Install-Package Quartz
下面是简单使用例子,附带详细的注释:
1  | 
  | 
声明要执行的作业,HelloJob:
1  | 
  | 
声明要执行的作业,DumbJob:
public class DumbJob : IJob
 {
 /// <summary>
 ///  context 可以获取当前Job的各种状态。
 /// </summary>
 /// <param name="context"></param>
 public void Execute(IJobExecutionContext context)
 {
 JobDataMap dataMap = context.JobDetail.JobDataMap;
 string content = dataMap.GetString(``"jobSays"``);
 Console.WriteLine(``"作业执行,jobSays:" + content);
 }
 }
其WithCronSchedule(“”) 拥有强大的Cron时间表达式,正常情况下_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