Quartz MisfireInstruction

Misfire:当一个作业在配置的规定时间没有运行(比如线程池里面没有可用的线程、作业被暂停等)并且作业配置的应该运行时刻为A,当前时间为B,如果B与A的时间间隔超过misfireThreshold配置的值(默认为60秒)则作业会被调度程序认为Misfire。

当作业misfire后,调度程序会根据配置的Misfire策略进行处理

可配置的Misfire策略在 MisfireInstruction.cs 列举了

常用的几个如下:

((CronTriggerImpl)trigger) .MisfireInstruction = MisfireInstruction.IgnoreMisfirePolicy;  //   错失运行了几次就会重新运行几次

 

 

 

 

((CronTriggerImpl)trigger).MisfireInstruction = MisfireInstruction.CronTrigger.DoNothing; // 对于错失运行的不做任何处理

 

 

 

 

((CronTriggerImpl)trigger).MisfireInstruction = MisfireInstruction.CronTrigger.FireOnceNow; // 如果错失多次,则只立即运行一次

 

注:我的  quartz.jobStore.misfireThreshold = 1000

 

posted @ 2020-12-24 17:22  温故纳新  阅读(1462)  评论(0编辑  收藏  举报