直接上代码,注释写了各个步骤和方式~很详细哒。(spring定时任务一般有三种方式:1:注释,2:实现接口(本文采取的方式),3:和Quartz框架集成)
需要说明的是,这种加开关的方式,并不会真正意义的关闭定时任务,只是不执行了你写的具体逻辑操作。
当想要开启定时任务的时候,直接更改数据库或者ZK的值就好了,也可以写个方法去更新数据库中的值,达到动态刷新执行周期的目的。
package com.example.demo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.Trigger;
import org.springframework.scheduling.TriggerContext;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import org.springframework.scheduling.support.CronTrigger;
import org.springframework.util.StringUtils;
import java.time.LocalDateTime;
import java.util.Date;
//步骤1:标记Spring配