SpringBoot 定时任务

来源:互联网 发布:如何查看mac os版本 编辑:程序博客网 时间:2024/05/17 02:32
一、定时任务的实现方式
        (1)Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少。 
        (2)使用Quartz,这是一个功能比较强大的的调度器,可以让你的程序在指定时间执行,也可以按照某一个频度执行,配置起来稍显复杂。 
        (3) Spring3.0以后自带的task,可以将它看成一个轻量级的Quartz,而且使用起来比Quartz简单许多。

二、编写scheduler类,给定时任务类MyTask添加注解@Configuration和@EnableScheduling
  1. @Configuration
  2. @EnableScheduling
  3. public class MyTask {
  4. //每10秒钟执行一次
  5. @Scheduled(cron = "0/10 * * * * *")
  6. public void task1(){
  7. System.out.println("this is my task1" +new Date());
  8. }
  9. //每1分钟执行一次
  10. @Scheduled(cron = "0 0/1 * * * *")
  11. public void task2(){
  12. System.out.println("this is my task2"+new Date());
  13. }
  14. }
运行application,可以看到控制台中不断输出的定时任务执行的信息。
  1. this is my task1Sat Jun 10 17:56:40 CST 2017
  2. this is my task1Sat Jun 10 17:56:50 CST 2017
  3. this is my task2Sat Jun 10 17:57:00 CST 2017
  4. this is my task1Sat Jun 10 17:57:00 CST 2017
  5. this is my task1Sat Jun 10 17:57:10 CST 2017
  6. this is my task1Sat Jun 10 17:57:20 CST 2017
  7. this is my task1Sat Jun 10 17:57:30 CST 2017
  8. this is my task1Sat Jun 10 17:57:40 CST 2017
  9. this is my task1Sat Jun 10 17:57:50 CST 2017
  10. this is my task1Sat Jun 10 17:58:00 CST 2017
  11. this is my task2Sat Jun 10 17:58:00 CST 2017
  12. this is my task1Sat Jun 10 17:58:10 CST 2017
  13. this is my task1Sat Jun 10 17:58:20 CST 2017
  14. this is my task1Sat Jun 10 17:58:30 CST 2017

三、cronExpression配置说明和cron栗子
  1. 字段 允许值 允许的特殊字符
  2. 秒 0-59 , - * /
  3. 分 0-59 , - * /
  4. 小时 0-23 , - * /
  5. 日期 1-31 , - * ? / L W C
  6. 月份 1-12 或者 JAN-DEC , - * /
  7. 星期 1-7 或者 SUN-SAT , - * ? / L C #
  8. 年(可选) 留空, 1970-2099 , - * /
  9. - 区间
  10. * 通配符
  11. ? 你不想设置那个字段

  1. CRON表达式 含义
  2. "0 0 12 * * ?" 每天中午十二点触发
  3. "0 15 10 ? * *" 每天早上10:15触发
  4. "0 15 10 * * ?" 每天早上10:15触发
  5. "0 15 10 * * ? *" 每天早上10:15触发
  6. "0 15 10 * * ? 2005" 2005年的每天早上10:15触发
  7. “0 * 14 * * ?" 每天从下午2点开始到2点59分每分钟一次触发
  8. "0 0/5 14 * * ?" 每天从下午2点开始到2:55分结束每5分钟一次触发
  9. "0 0/5 14,18 * * ?" 每天的下午2点至2:55和6点至6点55分两个时间段内每5分钟一次触发
  10. "0 0-5 14 * * ?" 每天14:00至14:05每分钟一次触发
  11. "0 10,44 14 ? 3 WED" 三月的每周三的14:10和14:44触发
  12. "0 15 10 ? * MON-FRI" 每个周一、周二、周三、周四、周五的10:15触发
原创粉丝点击