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"; }
原文地址:https://www.cnblogs.com/cyh1282656849/p/14592978.html