Spring job动态修改

2017-11-09  本文已影响0人  猿人记

java 中的定时任务quartz,已整合到spring中,如何动态调整任务的触发时间,以下是知识点:

/**
 *  修改 creatRptTrigger 定义的运行时间
 */
public void setReptTime(String cronEx){
        try{
            TriggerKey triggerKey  = TriggerKey.triggerKey("creatRptTrigger", Scheduler.DEFAULT_GROUP);  
            CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey); 
            //表达式调度构建器  
            CronScheduleBuilder scheduleBuilder = CronScheduleBuilder
                    //防止定时器立即触发,开始时间从现在开始计时
                    .cronSchedule(cronEx).withMisfireHandlingInstructionDoNothing();  
            //按新的cronExpression表达式重新构建trigger  
            trigger = trigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(scheduleBuilder).build();  
            //按新的trigger重新设置job执行  
            scheduler.rescheduleJob(triggerKey, trigger);
        }catch(Exception ex){
            ex.printStackTrace();
        }
    }
上一篇下一篇

猜你喜欢

热点阅读