1. 添加注解 @EnableScheduling
没加这个注解,定时器不会跑的
2. 写具体的业务,方法上要加 @Scheduled
@Component
public class SendMailScheduled {
protected Logger logger = LoggerFactory.getLogger(SendMailScheduled.class);
private AtomicInteger ato = new AtomicInteger();
// @Scheduled(cron="0 */5 * * * ?") //每5分钟执行一次
// @Scheduled(cron="0 */1 * * * ?") //每1分钟执行一次
@Scheduled(fixedDelay=30*1000) //每30s执行一次
public void send(){
int num = ato.getAndIncrement();
logger.info("index={} , start run send mail. ",num);
}
}
# 这个方法每隔 5 秒就会被调用,5 秒钟的间隔是指从上一次调用的完成之时开始算起
@Scheduled(fixedDelay=5000)
# 这个方法每隔 5 秒就会被调用,此时的 5 秒就是从上一次调用之始开始算起了
@Scheduled(fixedRate=5000)
# initialDelay 属性来指定一个延迟时间,下面这个方法会先等待 1 秒
@Scheduled(initialDelay=1000, fixedRate=5000)
# cron表达式 每1分钟执行一次
@Scheduled(cron="0 */1 * * * ?")