java 中的定時任務quartz毕莱,已整合到spring中,如何動態(tài)調(diào)整任務的觸發(fā)時間,以下是知識點:
/**
* 修改 creatRptTrigger 定義的運行時間
*/
public void setReptTime(String cronEx){
try{
TriggerKey triggerKey = TriggerKey.triggerKey("creatRptTrigger", Scheduler.DEFAULT_GROUP);
CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
//表達式調(diào)度構(gòu)建器
CronScheduleBuilder scheduleBuilder = CronScheduleBuilder
//防止定時器立即觸發(fā),開始時間從現(xiàn)在開始計時
.cronSchedule(cronEx).withMisfireHandlingInstructionDoNothing();
//按新的cronExpression表達式重新構(gòu)建trigger
trigger = trigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(scheduleBuilder).build();
//按新的trigger重新設(shè)置job執(zhí)行
scheduler.rescheduleJob(triggerKey, trigger);
}catch(Exception ex){
ex.printStackTrace();
}
}