Quartz 的失火指令 (MisFire)
有时,Quartz 无法在您需要的时间运行您的工作。 这有三个原因:
- 所有工作线程都忙于运行其他作业(可能具有更高的优先级)
- 调度程序本身已关闭
- 该作业是在过去的开始时间安排的(可能是编码错误)
可以通过简单地在 quartz.properties 自定义 org.quartz.threadPool.threadCount (默认值为 10)来增加工作线程的数量。 但是当整个应用程序/服务器/调度程序停机时,实际上无法执行任何操作。 当 Quartz 无法触发给定的触发器时,这种情况称为不点火(失火、misfire)
SimpleTrigger 有几个指令可以用来通知 Quartz.NET 在发生失火时应该做什么。这些指令被定义为常量 MisfirePolicy.SimpleTrigger
说明包括:
SimpleTrigger 的 Misfire 指令常量
- MisfireInstruction.IgnoreMisfirePolicy
- MisfirePolicy.SimpleTrigger.FireNow
- MisfirePolicy.SimpleTrigger.RescheduleNowWithExistingRepeatCount
- MisfirePolicy.SimpleTrigger.RescheduleNowWithRemainingRepeatCount
- MisfirePolicy.SimpleTrigger.RescheduleNextWithRemainingCount
- MisfirePolicy.SimpleTrigger.RescheduleNextWithExistingCount
SimpleTrigger 有几个指令可以用来通知 Quartz.NET 在发生失火时应该做什么