在项目开发的过程中,可能需要程序定时执行某些操作,比如每个间隔输出、每周每月定时输出等,而在Spring Boot我们可以使用Schedule实现定时的任务。
首先在spring boot的入口类Application.java中,添加@EnableScheduling注解,允许支持schedule
@SpringBootApplication
@EnableScheduling
public class Application{
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
之后编写定时任务的操作代码
执行类Schedul.java
@Component
public class Schedul {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
private final static long ONE_Minute = 60 * 1000;
@Scheduled(fixedDelay=ONE_Minute)
public void fixedDelay(){
logger.info("fixedDelay执行...");
}
@Scheduled(fixedRate=ONE_Minute)
public void fixedRate(){
logger.info("fixedRate执行...");
}
@Scheduled(cron="0 0 3 ? * 7")
public void cron(){
logger.info("cron定期执行");
}
}
fixedDelay 每隔多久执行一次 开始-开始
fixedRate 每隔多久执行一次 结束-开始
fixedDelay不管方法进行多久,fixedRate在方法执行完毕后才会计时
自定义cron的配置