50.11. 配置不正确的说明
quartz 调度程序可以使用错误指令配置,以处理触发器的错误情况。您正在使用的 concrete 触发器类型将定义了一组额外的 MISFIRE_INSTRUCTION_XXX
常量,可以设置为此属性的值。
例如,将 simple 触发器配置为使用错误指令 4:
quartz://myGroup/myTimerName?trigger.repeatInterval=2000&trigger.misfireInstruction=4
同样,您可以使用其错误指令之一配置 cron 触发器:
quartz://myGroup/myTimerName?cron=0/2+*+*+*+*+?&trigger.misfireInstruction=2
simple 和 cron 触发器有以下不正确的指令代表:
50.11.1. SimpleTrigger.MISFIRE_INSTRUCTION_FIRE_NOW = 1 (default)
指示调度程序在出错的情况下,MutyTrigger 希望由调度程序触发。
这个指令通常只用于 'one-shot'(非重复)触发器。如果在带有重复计数 > 0 的触发器中使用,则相当于指令 MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_REMAINING_REPEAT_COUNT。
50.11.2. SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT = 2
指示调度程序在错误的情况下,SimpleTrigger 希望重新调度为"现在" (即使关联的 Calendar excludes 'now')。这会产生 Trigger 终止时间,因此如果 'now' 在 Trigger 结束时不会再次触发。
使用这个指令可让触发器"forget",启动时间并重复了它最初设置的重复计数(如果您因为一些原因希望告知原始值在一些时候存在)时才有问题。
50.11.3. SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_REMAINING_REPEAT_COUNT = 3
指示调度程序在错误的情况下,MutyTrigger 希望被重新调度为 'now'(即使关联的 Calendar excludes 'now'),如果还没有丢失任何触发,则它也会被重新调度。这会产生 Trigger 终止时间,因此如果 'now' 在 Trigger 结束时不会再次触发。
使用这个指令可让触发器"forget",并重复它最初被设置。相反,触发器的重复计数将更改为剩余的重复计数。这只是只有在出于某种原因想告知原始值在以后存在哪些原始值时才有问题。
如果所有未命中的重复时间,这个指令可能会导致 Trigger 在触发 'now' 后进入 'COMPLETE' 状态。
50.11.4. SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT = 4
指示调度程序在错误的情况下,MutyTrigger 希望在 'now' 后重新调度到下一个调度时间 - 如果还没有丢失任何关联的 Calendar,并将重复计数设置为它。
如果所有触发时间都丢失,则此指令可能会导致 Trigger 直接进入 'COMPLETE' 状态。
50.11.5. SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_EXISTING_COUNT = 5
指示调度程序在错误的情况下,SimpleTrigger 希望在 'now' 后重新调度到下一个调度时间 - 考虑任何关联的 Calendar,重复计数保持不变。
如果触发器的结束时间到达,这个指令可能会导致 Trigger 直接进入 'COMPLETE' 状态。
50.11.6. CronTrigger.MISFIRE_INSTRUCTION_FIRE_ONCE_NOW = 1 (default)
指示调度程序在异常情况时,C CronTrigger 现在希望由调度程序触发。
50.11.7. CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING = 2
指示调度程序在出错的情况下,CronTrigger 希望在当前时间后将其下次更新到调度中的下一次时间(不考虑任何关联的 Calendar,但现在不想触发它。