在调度任务的类上加上@EnableScheduling注解 开启任务调度,直接上代码
package com.ldy.bootv2.demo.job; import javax.annotation.PostConstruct; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @Component @EnableScheduling public class TaskScheduled { private static Logger logger = LoggerFactory.getLogger(TaskScheduled.class); /** * @方法名: init<br> * @描述: 项目启动初始化执行<br> */ @PostConstruct public void init() { //TODO 这里写你要执行的代码 logger.info("init:初始任务开始执行,只执行一次"); } /** * <p>方法名: execute</p> * <p>描述: 定时任务,上一次开始执行时间点之后10秒再执行</p> */ @Scheduled(fixedRate = 1000*10) public void execute1() { //TODO 这里写你要执行的代码 logger.info("execute1:10秒执行一次,下一次执行时间是当前执行时间开始之后10秒"); try { Thread.sleep(1000*5);//睡眠5秒观察执行情况 } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * <p>方法名: execute</p> * <p>描述: 定时任务,上一次执行完毕时间点之后10秒再执行</p> */ @Scheduled(fixedDelay = 1000*10) public void execute2() { //TODO 这里写你要执行的代码 logger.info("execute2:10秒执行一次,下一次执行时间是当前执行完成时间之后10秒"); try { Thread.sleep(1000*5);//睡眠5秒观察执行情况 } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }@Scheduled参数常用参数格式请参考:Spring框架@Scheduled参数说明
启动项目,观察调度情况如图