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注解!!!

效果图:
image

image

posted @ 2024-11-10 20:50  xiaobiao~  阅读(23)  评论(0编辑  收藏  举报