Quartz.NET笔记整理,实例,动态改变周期调度。misfire、Cron

本文介绍了Quartz.NET,一个强大的任务调度框架,及其在C#中的应用。主要内容包括Job、JobDetail、Trigger和Scheduler四大核心对象的解释。通过实例展示了如何创建Job、配置调度参数及动态改变执行周期。文中还提到了misfire问题,即调度错过执行的情况,并提供了代码示例链接,深入探讨了不同misfire策略的影响。
摘要由CSDN通过智能技术生成

Quartz:Java编写的开源的任务调度作业框架 类似Timer之类定时执行的功能,但是更强大

Quartz.NET:是把Quartz转成C#  NuGet中可以直接下载对应类库

官网:https://www.quartz-scheduler.net/

主要对象:

  • Job :工作,要执行的具体内容继承IJob。此接口中只有一个方法:execute(IJobExecutionContext context) 
  • JobDetail:具体的可执行的调度程序,Job 是这个可执行程调度程序所要执行的内容
  • Trigger:调度参数的配置,什么时候去调 执行间隔。 
  • Scheduler:调度容器,一个调度容器中可以注册多个 JobDetail 和 Trigger。当 Trigger 与 JobDetail 组合,就可以被 Scheduler 容器调度了。 

大体介绍:

 static void Main(string[] args)
        {
            Task<IScheduler> task_scheduler = StdSchedulerFactory.GetDefaultScheduler();
            IScheduler scheduler = task_scheduler.Result;

            //ISchedulerFactory _SchedulerFactory = new StdSchedulerFactory();
            //IScheduler scheduler = _SchedulerFactory.GetScheduler().Result;

            /*  
             *   过程:
             *      一.通过StdSchedulerFactory计划工厂对象创建调度计划Scheduler
             *      二.创建Job对象,需要继承IJob 实现执行方法
             *      三.触发对象,2种:间隔执行和定时执行
             *          1.ITrigger:间隔执行
             *          2.ICronTrigger:定时执行
             *      四.将job对象和触发对象传入调度计划Scheduler 开始执行
             *  
             * 
             */
            //job创建
            IJobDetail job = JobBuilder.Create<SayHello>().WithIdentity("定时确认完成订单").Build();

            创建简单计时器
            //ISimpleTrigger _SimpleTrigger = TriggerBuilder.Create()
            //    .WithSimpleSchedule(t => t //声明定时
            //    .WithIntervalInSeconds(2) //5秒一次
            //    .RepeatForever()) //永远执行
            //    .StartNow() //立即开始
            //    .Build() //创建
            //    as ISimpleTrigger;
            关联job与计时器
            //scheduler.ScheduleJob(job, _SimpleTrigger);
            /*
             * WithCronSchedule参数说明:
             *  秒 分 时 某一天 月 周 年(可选参数,一般不用)
             *  秒分的合法值为0-59,小时:0-23,日期(天):0-31[要注意不同的月份中的天数不同] 月:0-11[或JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC] 星期:1-7(1=星期日)或[SUN,MON,TUE,WED,THU,FRI,SAT]    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值