spring boot中实现配置和使用定时器

来源:互联网 发布:java获取cpu型号 编辑:程序博客网 时间:2024/05/22 03:25

简单两步,实现在spring boot中配置和使用定时器:

1、在入口类中加入@EnableScheduling注解(即springboot启动类添加注解@EnableScheduling)

[java] view plain copy
  1. @SpringBootApplication  
  2. @EnableScheduling  
  3. public class MySpringBootApplication {  
  4.     private static Logger logger = LoggerFactory.getLogger(MySpringBootApplication.class);  
  5.       
  6.     public static void main(String[] args) {  
  7.         SpringApplication.run(MySpringBootApplication.class, args);  
  8.         logger.info("My Spring Boot Application Started");  
  9.     }  
  10. }  

2、创建定时器类,类中的方法注解了@Scheduled就是一个定时器,我这里谢了两个定时器,你们用一个也行。:

[java] view plain copy
  1. @Component  
  2. public class Scheduler {  
  3.     private final Logger logger = LoggerFactory.getLogger(this.getClass());  
  4.       
  5.     @Scheduled(cron="0 0/1 * * * ?"//每分钟执行一次,这是cron表达式  
  6.     public void statusCheck() {      
  7.         logger.info("每分钟执行一次。开始……");  
  8.         //statusTask.healthCheck();  
  9.         logger.info("每分钟执行一次。结束。");  
  10.     }    
  11.   
  12.     @Scheduled(fixedRate=20000)  
  13.     public void testTasks() {      
  14.         logger.info("每20秒执行一次。开始……");  
  15.         //statusTask.healthCheck();  
  16.         logger.info("每20秒执行一次。结束。");  
  17.     }    
  18. }  


启动项目,验证结果:

[plain] view plain copy
  1. 2016-07-19 14:51:57,049:INFO pool-2-thread-1 (Scheduler.java:28) - 每20秒执行一次。开始……  
  2. 2016-07-19 14:51:57,049:INFO pool-2-thread-1 (Scheduler.java:31) - 每20秒执行一次。结束。  
  3. 2016-07-19 14:52:00,002:INFO pool-2-thread-1 (Scheduler.java:19) - 每分钟执行一次。开始……  
  4. 2016-07-19 14:52:00,002:INFO pool-2-thread-1 (Scheduler.java:22) - 每分钟执行一次。结束。  
  5. 2016-07-19 14:52:17,049:INFO pool-2-thread-1 (Scheduler.java:28) - 每20秒执行一次。开始……  
  6. 2016-07-19 14:52:17,049:INFO pool-2-thread-1 (Scheduler.java:31) - 每20秒执行一次。结束。  
  7. 2016-07-19 14:52:37,049:INFO pool-2-thread-1 (Scheduler.java:28) - 每20秒执行一次。开始……  
  8. 2016-07-19 14:52:37,049:INFO pool-2-thread-1 (Scheduler.java:31) - 每20秒执行一次。结束。  
  9. 2016-07-19 14:52:57,049:INFO pool-2-thread-1 (Scheduler.java:28) - 每20秒执行一次。开始……  
  10. 2016-07-19 14:52:57,049:INFO pool-2-thread-1 (Scheduler.java:31) - 每20秒执行一次。结束。  
  11. 2016-07-19 14:53:00,002:INFO pool-2-thread-1 (Scheduler.java:19) - 每分钟执行一次。开始……  
  12. 2016-07-19 14:53:00,002:INFO pool-2-thread-1 (Scheduler.java:22) - 每分钟执行一次。结束。  
  13. 2016-07-19 14:53:17,049:INFO pool-2-thread-1 (Scheduler.java:28) - 每20秒执行一次。开始……  
  14. 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

阅读全文
0 0