Quartz.NET定时任务组件简介

目标:实现一个每隔一分钟报时的Demo

首先引用Quatz.NET的dll文件,包括Common.Logging.dll、Common.Logging.Core.dll、Quartz.dll三个文件。

也可通过NuGet命令:Install-Package Quartz

以上处理完毕后,新建一个ShowTime类,继承自IJob

1     public class ShowTime : IJob
2     {
3         public void Execute(IJobExecutionContext context)
4         {
5             Console.WriteLine(DateTime.Now);
6         }
7     }

再新建一个ShowTimeSchedule类

 1     public class ShowTimeSchedule
 2     {
 3         public static void Publish()
 4         {
 5             //01.创建调度工厂
 6             ISchedulerFactory schedulerFactory = new StdSchedulerFactory();
 7 
 8             //01.创建调度者
 9             IScheduler scheduler = schedulerFactory.GetScheduler();
10 
11             //03.创建任务建造者
12             JobBuilder jobBuilder = JobBuilder.Create<ShowTime>();
13 
14             //04.创建任务
15             IJobDetail job = jobBuilder.Build();
16 
17             //05.创建触发器建造者
18             TriggerBuilder triggerBuilder = TriggerBuilder.Create();
19             triggerBuilder.WithCronSchedule("0 * 10 * * ?");    //此中字符串为Quartz专用cron表达式
20 
21             //06.创建触发器
22             ITrigger trigger = triggerBuilder.Build();
23 
24             //07.为调度者添加任务与触发器
25             scheduler.ScheduleJob(job, trigger);
26 
27             //08.开始调度
28             scheduler.Start();
29         }
30     }

Main方法中如下

1     class Program
2     {
3         static void Main(string[] args)
4         {
5             //发布任务
6             ShowTimeSchedule.Publish();
7         }
8     }

运行后效果

关于cron表达式的详细配置可参考懒惰的肥兔的博客园

http://www.cnblogs.com/lzrabbit/archive/2012/04/14/2371420.html

原文地址:https://www.cnblogs.com/shanhe/p/4710082.html