在调度任务的类上加上@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参数说明
启动项目,观察调度情况如图