首页 > 其他 > 详细

Quartz基础使用

时间:2021-03-16 14:50:13      阅读:44      评论:0      收藏:0      [点我收藏+]

Quartz基本组成部分:

  • 调度器:Scheduler
  • 任务:JobDetail
  • 触发器:Trigger,包括SimpleTrigger和CronTrigger

.技术分享图片

 

 

using Quartz;
using Quartz.Impl;
using System;           
using System.Threading.Tasks;

namespace QuartzDemo1
{
    /// <summary>
    /// 我的任务
    /// </summary>
    class MyJob : IJob
    {
        public Task Execute(IJobExecutionContext context)
        {
            JobDataMap jobdata = context.JobDetail.JobDataMap;
            JobDataMap triggerdata= context.Trigger.JobDataMap;
            Console.WriteLine($"JobKey:{jobdata["JobKey"]},TriggerKey:{triggerdata["TriggerKey"]},{DateTime.Now.ToString()}");
            return Task.CompletedTask;
        }
    }
    class Program
    {
        static async Task Main(string[] args)
        {
            IScheduler scheduler;/*****************this‘s Scheduler********************/
            {
                //调度器工厂        
                StdSchedulerFactory factory = new StdSchedulerFactory();
                scheduler = await factory.GetScheduler();  //调度器  
            }
            IJobDetail job;  /*****************this‘s Ijob********************/
            {   
                //创建一个工作任务 ,myjob1是名称,mygroup1是组名。
                 job = JobBuilder.Create<MyJob>().WithIdentity("myjob1", "mygroup1")
                                               .UsingJobData("JobKey", "JobValue")     //传数据
                                                .Build();
                //..... 可以创建多个Job然后通过  group进行分组
                //例如:   有7个接口 A/B/C/O/X/Y/Z
                //ABC分别接收ABC类型订单(已确定执行时间一致)  每天06:00执行
                //XYZ分别发送XYZ订单(已确定执行时间一致)     每天12:00/22:00点
                //O接口定时清理数据                        每天23:00执行
                //则可以把 ABC分为  ABCGroup     XYZ分为XYZGroup   O单独分为Ogroup;
            }
            ITrigger trigger;  /*****************this‘s Itrigger********************/
            {
                //触发器
                trigger = TriggerBuilder.Create()
                           .WithIdentity("mytrigger1", "mygroup1") //定时器与JobGroup对应
                         //.WithCronSchedule("0/5 * * * * ?") //5秒执行一次     //同下 (定时)
                           .WithSimpleSchedule(x => x.WithIntervalInSeconds(5).RepeatForever())  //同上(定时)
                           .UsingJobData("TriggerKey", "TriggerValue")    //传数据
                           .Build();
            }
            //将任务与触发器添加到调度器中
            _ = scheduler.ScheduleJob(job, trigger);
            _ = scheduler.Start();
            Console.Read();   
        }
    }
}

 

Quartz基础使用

原文:https://www.cnblogs.com/Zingu/p/14542734.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!