Quartz.NET入门

自古美人都是妖i 提交于 2020-01-16 11:57:20

Quartz.NET是一个开源的作业调度框架。

官网地址:https://www.quartz-scheduler.net/
目前最新版本为3.0.7,需要.NET Framework 4.5.2及更高版本以上。
.NET Framework 4.0及以下可以用版本2.6.2。
本文用的是2.6.2版本,下面为入门例子。

1、创建2个简单任务

Hello1Job.cs

public class Hello1Job : IJob
    {        
        public void Execute(IJobExecutionContext context)
        {           
            LogHelper.Info("hello1");           
        }
    }

Hello2Job.cs

 public class Hello2Job : IJob
    {        
        public void Execute(IJobExecutionContext context)
        {           
            LogHelper.Info("hello2");           
        }
    }

2、创建任务服务

QuartzService.cs

//引用Quartz、Quartz.Impl;
public class QuartzService
    {
        //调度器
        IScheduler scheduler;
        public QuartzService()
        {
            //调度器工厂
            ISchedulerFactory factory = new StdSchedulerFactory();
            scheduler = factory.GetScheduler();
        }       
        public void Start()
        {                     
            //创建任务
            IJobDetail job1 = JobBuilder.Create<Hello1Job>().WithIdentity(new JobKey("job1")).Build();
            //创建触发器,配置3秒执行一次
            ITrigger trigger1 = TriggerBuilder.Create().WithCronSchedule("0/3 * * * * ?") .Build();

            //创建任务
            IJobDetail job2 = JobBuilder.Create<Hello2Job>().WithIdentity(new JobKey("job2")).Build();
            //创建触发器,配置5秒执行一次
            ITrigger trigger2 = TriggerBuilder.Create().WithCronSchedule("0/5 * * * * ?").Build();
            
            //将任务与触发器添加到调度器中,如果需要多个就绑定多个即可
            scheduler.ScheduleJob(job1, trigger1);
            scheduler.ScheduleJob(job2, trigger2);

            //开始执行
            scheduler.Start();
        }

        public void Shutdown()
        {
            if (scheduler != null)
            {
                scheduler.Shutdown(true);
            }
        }
    }

3、调用

QuartzService quartzJob = new QuartzService();
quartzJob.Start();

运行结果如下:

2019-06-03 09:52:39,667 [DefaultQuartzScheduler_Worker-1] INFO  logging - hello1
2019-06-03 09:52:40,000 [DefaultQuartzScheduler_Worker-2] INFO  logging - hello2
2019-06-03 09:52:42,000 [DefaultQuartzScheduler_Worker-3] INFO  logging - hello1
2019-06-03 09:52:45,000 [DefaultQuartzScheduler_Worker-4] INFO  logging - hello1
2019-06-03 09:52:45,000 [DefaultQuartzScheduler_Worker-5] INFO  logging - hello2
2019-06-03 09:52:48,000 [DefaultQuartzScheduler_Worker-6] INFO  logging - hello1
2019-06-03 09:52:50,000 [DefaultQuartzScheduler_Worker-7] INFO  logging - hello2
2019-06-03 09:52:51,000 [DefaultQuartzScheduler_Worker-8] INFO  logging - hello1
2019-06-03 09:52:54,000 [DefaultQuartzScheduler_Worker-9] INFO  logging - hello1
2019-06-03 09:52:55,000 [DefaultQuartzScheduler_Worker-10] INFO  logging - hello2

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!