Quartz.NET实现作业调度(3.0版本实现)定时执行一个任务

时间:2023-03-10 02:46:45
Quartz.NET实现作业调度(3.0版本实现)定时执行一个任务

2.0版本请参考https://www.cnblogs.com/best/p/7658573.html这里的文章很详细:

我们现在想每5秒钟往txt文件夹里存储一个时间

首先:定义一个类,实现Quartz.IJob接口,实现方法Execute,TimeJob.cs文件的代码如下:

using Quartz;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; namespace MvcApplication1
{
public class TimeJob : IJob
{
public void Execute(IJobExecutionContext context)
{
//向c:\Quartz.txt写入当前时间并换行
System.IO.File.AppendAllText(@"c:\Quartz.txt", DateTime.Now+Environment.NewLine);
}
}
}

  

现在Quartz.NET3.0 操作如下:和2.0版本还是有预定的区别,引入了TASK相关的概念,具体参照 https://www.quartz-scheduler.net/documentation/quartz-3.x/migration-guide.html

 //1,调度器
Task<IScheduler> taskScheduler;
IScheduler scheduler1;
//调度器工厂
ISchedulerFactory factory = new StdSchedulerFactory(); //创建一个调度器
taskScheduler = factory.GetScheduler();
scheduler1 = taskScheduler.Result; IJobDetail job = JobBuilder.Create<TimeJob>().WithIdentity("job1", "group1").Build(); //3、创建一个触发器 //ITrigger trigger = TriggerBuilder.Create()
// .WithIdentity("trigger1", "group1")
// .WithCronSchedule("0/5 * * * * ?") //5秒执行一次
// .Build(); //3.1另外一种触发器
ISimpleTrigger trigger1 = (ISimpleTrigger)TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartNow().WithSimpleSchedule(x => x.WithIntervalInSeconds(5).RepeatForever()).Build(); //4、将任务与触发器添加到调度器中
//scheduler1.ScheduleJob(job, trigger);
scheduler1.ScheduleJob(job, trigger1);
//5、开始执行
scheduler1.Start();