简单两步,实现在spring boot中配置和使用定时器:
1、在入口类中加入@EnableScheduling注解(即springboot启动类添加注解@EnableScheduling):
- @SpringBootApplication
- @EnableScheduling
- public class MySpringBootApplication {
- private static Logger logger = LoggerFactory.getLogger(MySpringBootApplication.class);
-
- public static void main(String[] args) {
- SpringApplication.run(MySpringBootApplication.class, args);
- logger.info("My Spring Boot Application Started");
- }
- }
2、创建定时器类,类中的方法注解了@Scheduled就是一个定时器,我这里谢了两个定时器,你们用一个也行。:
- @Component
- public class Scheduler {
- private final Logger logger = LoggerFactory.getLogger(this.getClass());
-
- @Scheduled(cron="0 0/1 * * * ?")
- public void statusCheck() {
- logger.info("每分钟执行一次。开始……");
-
- logger.info("每分钟执行一次。结束。");
- }
-
- @Scheduled(fixedRate=20000)
- public void testTasks() {
- logger.info("每20秒执行一次。开始……");
-
- logger.info("每20秒执行一次。结束。");
- }
- }
启动项目,验证结果:
- 2016-07-19 14:51:57,049:INFO pool-2-thread-1 (Scheduler.java:28) - 每20秒执行一次。开始……
- 2016-07-19 14:51:57,049:INFO pool-2-thread-1 (Scheduler.java:31) - 每20秒执行一次。结束。
- 2016-07-19 14:52:00,002:INFO pool-2-thread-1 (Scheduler.java:19) - 每分钟执行一次。开始……
- 2016-07-19 14:52:00,002:INFO pool-2-thread-1 (Scheduler.java:22) - 每分钟执行一次。结束。
- 2016-07-19 14:52:17,049:INFO pool-2-thread-1 (Scheduler.java:28) - 每20秒执行一次。开始……
- 2016-07-19 14:52:17,049:INFO pool-2-thread-1 (Scheduler.java:31) - 每20秒执行一次。结束。
- 2016-07-19 14:52:37,049:INFO pool-2-thread-1 (Scheduler.java:28) - 每20秒执行一次。开始……
- 2016-07-19 14:52:37,049:INFO pool-2-thread-1 (Scheduler.java:31) - 每20秒执行一次。结束。
- 2016-07-19 14:52:57,049:INFO pool-2-thread-1 (Scheduler.java:28) - 每20秒执行一次。开始……
- 2016-07-19 14:52:57,049:INFO pool-2-thread-1 (Scheduler.java:31) - 每20秒执行一次。结束。
- 2016-07-19 14:53:00,002:INFO pool-2-thread-1 (Scheduler.java:19) - 每分钟执行一次。开始……
- 2016-07-19 14:53:00,002:INFO pool-2-thread-1 (Scheduler.java:22) - 每分钟执行一次。结束。
- 2016-07-19 14:53:17,049:INFO pool-2-thread-1 (Scheduler.java:28) - 每20秒执行一次。开始……
- 2016-07-19 14:53:17,049:INFO pool-2-thread-1 (Scheduler.java:31) - 每20秒执行一次。结束。
关于@Scheduled注解中参数的使用,以及cron的定义,请参考:
http://blog.csdn.net/ClementAD/article/details/42042111
源代码参考:https://github.com/xujijun/my-spring-boot