If the version of quartz is 1.7.2,then you can use below code:
public void resetJob(String expression){ ApplicationContext applicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(context); Scheduler scheduler = (Scheduler) applicationContext.getBean("testScheduler"); try { CronTriggerBean trigger = new CronTriggerBean(); trigger.setCronExpression(expression); trigger.setName("testJobTrigger"); trigger.setGroup(Scheduler.DEFAULT_GROUP); trigger.setJobName("testJobDetail"); scheduler.rescheduleJob("testJobTrigger", Scheduler.DEFAULT_GROUP, trigger); } catch (SchedulerException | ParseException e) { e.printStackTrace(); } }
If the version of quartz is newer than 1.7.2,you can use below code:
public void resetJob(String expression){ ApplicationContext applicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(context); Scheduler scheduler = (Scheduler) applicationContext.getBean("testScheduler"); CronTriggerImpl trigger = null; try { TriggerKey triggerKeys = TriggerKey.triggerKey("testJobTrigger",Scheduler.DEFAULT_GROUP); trigger = new CronTriggerImpl(); trigger.setCronExpression(expression); trigger.setKey(triggerKeys);//keep key the same scheduler.rescheduleJob(triggerKeys,trigger); } catch (ParseException | SchedulerException e) { e.printStackTrace(); } }