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

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

咱们如今想每5秒钟往txt文件夹里存储一个时间ide

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

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.htmlspa

 //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();

            //三、建立一个触发器

            //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();

            //四、将任务与触发器添加到调度器中
            //scheduler1.ScheduleJob(job, trigger);
            scheduler1.ScheduleJob(job, trigger1);
            //五、开始执行
            scheduler1.Start();
相关文章
相关标签/搜索