50.11. 予期しない命令の設定
quartz スケジューラーは、予期しないトリガーの発生状況を処理するための予期しない命令を使用して設定できます。使用している具体的なトリガータイプでは、このプロパティーの値として設定できる追加の MISFIRE_INSTRUCTION_XXX
定数のセットが定義されています。
たとえば、ミスファイア命令 4 を使用するように単純なトリガーを設定するには、次のようにします。
quartz://myGroup/myTimerName?trigger.repeatInterval=2000&trigger.misfireInstruction=4
quartz://myGroup/myTimerName?trigger.repeatInterval=2000&trigger.misfireInstruction=4
同様に、予期しない命令の 1 つを使用して cron トリガーを設定することもできます。
quartz://myGroup/myTimerName?cron=0/2+*+*+*+*+?&trigger.misfireInstruction=2
quartz://myGroup/myTimerName?cron=0/2+*+*+*+*+?&trigger.misfireInstruction=2
シンプルトリガーと cron トリガーには、代表的な次の予期しない命令があります。
50.11.1. SimpleTrigger.MISFIRE_INSTRUCTION_FIRE_NOW = 1 (default) リンクのコピーリンクがクリップボードにコピーされました!
予期しない状況で、SimpleTrigger が Scheduler によってすぐに起動されることを Scheduler に指示します。
この命令は通常、ワンショット (非反復) トリガーにのみ使用する必要があります。繰り返し回数が 0 を超えるトリガーで使用された場合、MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_REMAINING_REPEAT_COUNT 命令と同等です。
50.11.2. SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT = 2 リンクのコピーリンクがクリップボードにコピーされました!
予期しない状況が発生した場合、SimpleTrigger が (関連付けられた Calendar で今が除外されていても) 繰り返し回数をそのままにして今に再スケジュールされることを Scheduler に指示します。ただし、これはトリガーの終了時間に従います。そのため、現在が終了時間の後にある場合、トリガーは再び起動しません。
この命令を使用すると、トリガは元々設定されていた開始時刻と繰り返し回数を忘れてしまいます(これは、何らかの理由で、後で元の値が何であったかを知ることができるようにしたい場合のみ問題です)。
50.11.3. SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_REMAINING_REPEAT_COUNT = 3 リンクのコピーリンクがクリップボードにコピーされました!
予期しない状況があった場合、SimpleTrigger は 'now' に再スケジュールされることをスケジューラに指示します (関連するカレンダーが 'now' を除外していても)。ただし、これはトリガーの終了時間に従います。そのため、現在が終了時間の後にある場合、トリガーは再び起動しません。
この命令を使用すると、トリガーは、最初に設定された開始時間と繰り返し回数を忘れてしまいます。代わりに、トリガーの繰り返し回数が残りの繰り返し回数に変更されます (これは、何らかの理由で元の値が後でわかるようにしたい場合にのみ問題になります)。
この命令により、すべてのトリガーが失敗した場合、今トリガーした後、'COMPLETE' 状態になる可能性があります。
50.11.4. SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT = 4 リンクのコピーリンクがクリップボードにコピーされました!
予期しない状況があった場合、SimpleTrigger を 'now' の次のスケジュール時刻に再スケジュールするようスケジューラに指示します - 関連するカレンダーを考慮し、繰り返し回数を、予期しない状況がなかった場合の回数に設定します。
この命令により、すべてのトリガーが失敗した場合、トリガーが直接 COMPLETE 状態になる可能性があります。
50.11.5. SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_EXISTING_COUNT = 5 リンクのコピーリンクがクリップボードにコピーされました!
予期しない状況が発生した場合、SimpleTrigger が現在の後の次のスケジュールされた時間に再スケジュールされることをスケジューラーに指示します - 関連するすべてのカレンダーを考慮し、繰り返し回数は変更されません。
この命令により、トリガーの終了時刻が到来した場合、トリガーが直接 COMPLETE 状態になる可能性があります。
50.11.6. CronTrigger.MISFIRE_INSTRUCTION_FIRE_ONCE_NOW = 1 (default) リンクのコピーリンクがクリップボードにコピーされました!
予期しない状況で、CronTrigger が Scheduler によってすぐに起動されることを Scheduler に指示します。
50.11.7. CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING = 2 リンクのコピーリンクがクリップボードにコピーされました!
予期しない状況が発生した場合、CronTrigger は次回の起動時刻を現在の時刻の後のスケジュール内の次回の時刻に更新する必要があることをスケジューラーに指示します (関連するカレンダーを考慮に入れますが、今すぐ起動する必要はありません)。.