Quartz.NET 作业调度使用

Quartz.NET的使用方法有很多,今天使用Quartz.NET3.0.6的时候发现和2.0版本的语法不太一样,百度上找了一圈也没有找到解决办法

后来在GitHub上下载源代码解决了

实现每隔10s将时间写入txt文件

第一步、新建一个类,实现IJob接口的Execute方法Task Execute(IJobExecutionContext context)

    public class TimeJob : IJob
    {
        public Task Execute(IJobExecutionContext context)
        {
            string filePath = @"D:\\log.txt";
            File.AppendAllText(filePath, DateTime.Now + Environment.NewLine);
            Console.WriteLine(DateTime.Now + Environment.NewLine);
            return Task.FromResult(true);
        }

        
    }

 第二步、实现任务调度

 static void Main(string[] args)
        {
            TestJob();
            Console.ReadKey();
        }


        static async Task TestJob()
        {
            //创建调度器工厂
            ISchedulerFactory factory = new StdSchedulerFactory();
            //创建调度器
            IScheduler scheduler = await factory.GetScheduler();
            
            //创建一个任务
            IJobDetail job = JobBuilder.Create<TimeJob>().WithIdentity("myJob1", "group1").Build();
            //创建一个触发器
            ITrigger trigger = TriggerBuilder.Create().WithIdentity("myTrigger1", "group1").StartNow().
                WithSimpleSchedule(a => a.WithIntervalInSeconds(10).RepeatForever()).Build();
            //将任务和触发器添加到调度器里
            await scheduler.ScheduleJob(job, trigger);
            //开始执行
            await scheduler.Start();
        }

 参考 https://github.com/quartznet/quartznet

https://quartznet.sourceforge.io/apidoc/3.0/html/

 

posted on 2018-07-16 17:29  lovezj9012  阅读(211)  评论(0编辑  收藏  举报

导航