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