任务类
@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"; }