序
quartz對不同的trigger提供了不同的misfire的處理策略,默認是MISFIRE_INSTRUCTION_SMART_POLICY,這里講解一下如何個性設置。
方式一:強轉設置
SimpleTrigger trigger = (SimpleTrigger) newTrigger()
.withIdentity("trigger1", "group1")
//如果你沒有調用 *startAt(..)*方法,那么當前時間(立刻激活)將被賦值。
.startAt(startTime)
.build();
((SimpleTriggerImpl)trigger).setMisfireInstruction(SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT);
方式二:流式api設置
SimpleTrigger trigger1 = newTrigger().withIdentity("trigger1", "group1").startAt(startTime)
.withSchedule(simpleSchedule()
.withIntervalInSeconds(10)
.withRepeatCount(4)
.withMisfireHandlingInstructionNowWithRemainingCount())
.build();
或者
CronTrigger trigger = newTrigger()
.withIdentity("trigger1", "group1")
.withSchedule(cronSchedule("0/20 * * * * ?")
.withMisfireHandlingInstructionDoNothing())
.build();