SpringBoot动态定时任务
任务类
@Service public class ScheduledForDynamicCron implements SchedulingConfigurer { private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); private static final String DEFAULT_CRON = "0/5 * * * * ?"; private String cron = DEFAULT_CRON;
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.addTriggerTask(
//1.添加任务内容(Runnable)
this::startTask,
//2.设置执行周期(Trigger)
triggerContext -> {
String corn = cron ;
return new CronTrigger(corn).nextExecutionTime(triggerContext);
}
);
}
public void setCron(String cron) { System.out.println("cron更变为"+cron); this.cron = cron; } }
触发修改
@RestController @RequestMapping("/test") public class TestController { @Autowired ScheduledForDynamicCron scheduledForDynamicCron; @RequestMapping(value = "/updateCron") public String updateCron (@RequestParam("cron") String cron) { scheduledForDynamicCron.setCron(cron); return "success"; }