SchedulingConfigurer 实现定时任务(动态修改cron,解决@Scheduled需重启服务问题)
通过实现SchedulingConfigurer接口,实现定时任务,解决@Scheduled的定时任务改动cron需要服务重启的问题。
@Slf4j
@Component
public class ATestScheduleJob implements SchedulingConfigurer {
@Value("${a.c:0/5 * * * * ?}")
private String cron1;
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.addTriggerTask(() -> execute(), this.buildTrigger());
}
public Trigger buildTrigger() {
return triggerContext -> new CronTrigger(cron1).nextExecutionTime(triggerContext);
}
/**
* 主逻辑
*/
public void execute() {
// 任务逻辑
log.info("【定时任务】测试任务1@----@1正在执行============================>>>>>>>>>>>>>>>>>>>>>>>");
}
}
注意:别忘了启动类需要加@EnableScheduling注解!!!
注意:别忘了启动类需要加@EnableScheduling注解!!!
效果图: