50.11. 잘못된 명령 설정
quartz 스케줄러는 트리거의 잘못된 상황을 처리하기 위해 잘못된 명령으로 구성할 수 있습니다. 사용 중인 구체적인 트리거 유형은 이 속성의 값으로 설정할 수 있는 추가MiS FIRE_INSTRUCTION_XXX
상수 세트를 정의합니다.
예를 들어 misfire 명령 4를 사용하도록 간단한 트리거를 구성하려면 다음을 수행합니다.
quartz://myGroup/myTimerName?trigger.repeatInterval=2000&trigger.misfireInstruction=4
quartz://myGroup/myTimerName?trigger.repeatInterval=2000&trigger.misfireInstruction=4
마찬가지로 잘못된 명령 중 하나로 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가 지금 실행하려고 한다고 지시합니다.
일반적으로 이 명령은 'one-shot'(repeating이 아닌) 트리거에만 사용해야 합니다. 반복 횟수 > 0이 있는 트리거에서 사용되는 경우, 이 명령은 =SFIRE_INSTRUTION_RESCHEDULE_NOW_WITH_REMAINING_REPEAT_COUNT 명령과 동일합니다.
50.11.2. SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT = 2 링크 복사링크가 클립보드에 복사되었습니다!
스케줄러에 잘못된 상황이 있을 때 SimpleTrigger가 'now'로 다시 예약되도록 지시합니다.(관련 calendar이 'now'를 제외하더라도) 반복 횟수가 그대로 남아 있게 됩니다. 그러나 트리거 종료 시간을 준수하므로 '현재'가 종료 후 트리거가 다시 실행되지 않습니다.
이 명령을 사용하면 트리거가 처음 설정되었던 시작 시간 및 반복 횟수를 사용하도록 합니다. (이 이유는 나중에 원본 값이 무엇인지 말할 수 있을 때 문제일 뿐입니다).
50.11.3. SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_REMAINING_REPEAT_COUNT = 3 링크 복사링크가 클립보드에 복사되었습니다!
잘못된 상황이 있을 때 SimpleTrigger가 다시 스케줄링되기를 원하는 경우, 실행을 놓치지 않은 경우, 반복 횟수를 사용하여 '현재'로 다시 예약하려고 합니다. 그러나 트리거 종료 시간을 준수하므로 '현재'가 종료 후 트리거가 다시 실행되지 않습니다.
이 명령을 사용하면 트리거가 시작 시간 및 원래 설정된 반복 횟수를 'forget'으로 설정합니다. 대신 트리거의 반복 횟수는 나머지 반복 수에 관계없이 변경됩니다. (어떤 이유로 인해 원래 값이 무엇인지 알 수 있는 경우에만 문제가 발생합니다).
이 명령을 수행하면 모든 반복-fire-times가 누락된 경우 'now' 실행 후 Trigger가 'COMPLETE' 상태로 이동할 수 있습니다.
50.11.4. SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT = 4 링크 복사링크가 클립보드에 복사되었습니다!
잘못된 상황에서 SimpleTrigger가 ' now' 이후 다음 예정된 시간으로 다시 예약되도록 스케줄러에 지시합니다. 현재 관련 calendar를 고려하여 반복 횟수를 계산하여 실행을 놓치지 않은 경우 반복 횟수를 설정합니다.
이 명령을 실행하면 트리거가 누락된 모든 API 타임으로 직접 '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 (기본) 링크 복사링크가 클립보드에 복사되었습니다!
스케줄러에 잘못된 상황이 있을 때 CronTrigger가 스케줄러에 의해 실행되기를 원하는 것을 지시합니다.
50.11.7. CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING = 2 링크 복사링크가 클립보드에 복사되었습니다!
잘못된 상황에서 CronTrigger가 현재 시간 이후 일정의 다음 시간으로 업데이트되도록 스케줄러에 지시합니다(관련된 calendar를 고려하지만 지금 실행하려고 하지는 않습니다.