在SpringBoot中可以通过@Scheduled 注解来定义一个定时任务, 但是有时候你可能会发现有的定时任务到时间了却没有执行,但是又不是每次都不执行,这是怎么回事?
下面这段代码定义了一个每隔十秒钟执行一次的定时任务:
@Component
public class ScheduledTaskDemo {
private static final Logger logger = LoggerFactory.getLogger(ScheduledTaskDemo.class);
@Scheduled(cron = “0/10 * * * * *”)
public void execute() {
logger.info(“Scheduled task is running… …”);
}
}
复制代码
此时启动SpringBoot应用, 可以在控制台看到这个定时任务每隔10秒钟打印一条log
2017-12-21 22:20:20.832 INFO 7424 — [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8000 (http)
2017-12-21 22:20:20.859 INFO 7424 — [ main] com.example.demo.DemoApplication : Started DemoApplication in 12.134 seconds (JVM running for 14.156)
2017-12-21 22:20:30.002 INFO 7424 — [pool-1-thread-1] c.e.demo.scheduled.ScheduledTaskDemo 便宜香港vps : S
56178702