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