C#实现Quartz任务调度的示例代码.docx
第
C#实现Quartz任务调度的示例代码
目录实现任务类启动调度取消任务调度把ExQuartz封装到类里面使用Quartz.NET,你可以很容易地安排任务在应用程序启动时运行,或者每天、每周、每月的特定时间运行,甚至可以基于更复杂的调度规则。
官网:/
实现任务类
创建一个实现了IJob接口的类(MailJobTest),该接口包含一个Execute方法,该方法将在作业运行时调用。例如:
usingQuartz;
usingSystem;
usingSystem.Threading.Tasks;
usingUploadLogiData.Util;
namespaceUploadLogiData
///summary
///邮件任务测试(每天三点固定时间检测Logi数据并发送内部邮件)
////summary
//对于耗时任务,需要上一次执行完成后,才执行下次任务,覆盖之前设置的执行周期
[DisallowConcurrentExecution]
publicclassMailJobTest:IJob
publicasyncTaskExecute(IJobExecutionContextcontext)
DisplayListboxMsg(邮箱开始调度);
}catch(Exceptionex)
UpUtil.LogWrite(ExceptionLog,$定时器异常_{ex.StackTrace});
实现一个LogiDownloadJob任务类
usingMechTE_480.DateTimeCategory;
usingQuartz;
usingSystem;
usingSystem.Threading.Tasks;
usingUploadLogiData.Util;
namespaceUploadLogiData.Quartzs
///summary
///监听启动时间,执行任务下载logi数据
////summary
//对于耗时任务,需要上一次执行完成后,才执行下次任务,覆盖之前设置的执行周期
[DisallowConcurrentExecution]
publicclassLogiDownloadJob:IJob
publicasyncTaskExecute(IJobExecutionContextcontext)
DisplayListboxMsg(启动时间开始调度);
启动调度
实例化并启动调度程序,并调度要执行的作业:
ISchedulerscheduler1;
///summary
///执行任务调度
////summary
///returns/returns
publicasyncTaskExLogiQuartz()
DisplayListboxMsg(检测任务启动!);
//1、创建一个调度
varfactory=newStdSchedulerFactory();
varscheduler=awaitfactory.GetScheduler();
awaitscheduler.Start();
//2、创建一个任务
varjob=JobBuilder.CreateLogiDownloadJob()
.WithIdentity(LogiJob,LogiGroup)
.Build();
//3、创建一个触发器
vartrigger=TriggerBuilder.Create()
.WithIdentity(LogiTrigger,LogiTriggerGroup)
.WithCronSchedule(0/5****)//5秒执行一次
.Build();
awaitscheduler.ScheduleJob(job,trigger);
//第二个任务
varjob2=JobBuilder.CreateMailJobTest()
.WithIdentity(MailJob,MailGroup)
.Build();
//3、创建一个触发器
vartrigger2=TriggerBuilder.Create()
.WithIdentity(MailTrigger,MailTriggerGroup)
.WithCronSchedule(0/