博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring 定时器使用
阅读量:6483 次
发布时间:2019-06-23

本文共 2096 字,大约阅读时间需要 6 分钟。

  hot3.png

1、spring的配置文件

        
 
    
    
          
          
      
            
        
        

2、基于xml的定时器任务

package com.spring.task;    /**  * 基于xml的定时器  * @author hj  */  public class MyTaskXml {                  public void show(){          System.out.println("XMl:is show run");      }            public void print(){          System.out.println("XMl:print run");      }  }

 3、基于注解的定时器任务

package com.spring.task;    import org.springframework.scheduling.annotation.Scheduled;  import org.springframework.stereotype.Component;    /**  * 基于注解的定时器  * @author hj  */  @Component  public class MyTaskAnnotation {            /**       * 定时计算。每天凌晨 01:00 执行一次       */        @Scheduled(cron = "0 0 1 * * *")       public void show(){          System.out.println("Annotation:is show run");      }            /**       * 心跳更新。启动时执行一次,之后每隔2秒执行一次       */        @Scheduled(fixedRate = 1000*2)       public void print(){          System.out.println("Annotation:print run");      }  }

 4、测试

package com.spring.test;    import org.springframework.context.ApplicationContext;  import org.springframework.context.support.ClassPathXmlApplicationContext;      public class Main {      public static void main(String[] args) {          ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-mvc.xml");      }  }

 

说明:

         1)Cron表达式的格式:秒 分 时 日 月 周 年(可选)

               字段名                 允许的值                        允许的特殊字符  

               秒                         0-59                               , - * /  

               分                         0-59                               , - * /  

               小时                   0-23                               , - * /  

               日                         1-31                               , - * ? / L W C  

               月                         1-12 or JAN-DEC          , - * /  

               周几                     1-7 or SUN-SAT            , - * ? / L C #  

               年 (可选字段)     empty, 1970-2099      , - * /

               “?”字符:表示不确定的值

               “,”字符:指定数个值

               “-”字符:指定一个值的范围

               “/”字符:指定一个值的增加幅度。n/m表示从n开始,每次增加m

               “L”字符:用在日表示一个月中的最后一天,用在周表示该月最后一个星期X

               “W”字符:指定离给定日期最近的工作日(周一到周五)

               “#”字符:表示该月第几个周X。6#3表示该月第3个周五

         2)Cron表达式范例:

                 每隔5秒执行一次:*/5 * * * * ?

                 每隔1分钟执行一次:0 */1 * * * ?

                每天隔一小时 : [  0  *  */1  *  * ?]

                 每天23点执行一次:0 0 23 * * ?

                 每天凌晨1点执行一次:0 0 1 * * ?

                 每月1号凌晨1点执行一次:0 0 1 1 * ?

                 每月最后一天23点执行一次:0 0 23 L * ?

                 每周星期天凌晨1点实行一次:0 0 1 ? * L

                 在26分、29分、33分执行一次:0 26,29,33 * * * ?

                 每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?

 

转载于:https://my.oschina.net/manmao/blog/592790

你可能感兴趣的文章
烦人的数据不一致问题到底怎么解决?——通过“共识”达成数据一致性
查看>>
抽象类详解
查看>>
《Oracle高性能自动化运维》一一2.2 队列锁(Enqueue Lock)
查看>>
《jQuery Mobile入门经典》—— 2.3 使用JavaScript完成功能
查看>>
java.lang.UnsupportedOperationException的解决方法
查看>>
让Erlang服务器后台运行
查看>>
APUE笔记七
查看>>
天兔监控安装
查看>>
python笔记-正则表达式
查看>>
Java二进制指令代码解析
查看>>
我的Python学习记录
查看>>
quzatz --Could not load org.quartz.spi.Trigge...
查看>>
qml实现窗口的拖拽效果
查看>>
Centos安装Mysql
查看>>
android Looper 非UI线程中更新UI
查看>>
js if语句多个条件判断
查看>>
AVPacketList结构体和AVPacketQueue结构体
查看>>
PHP操作redis详细讲解
查看>>
Android学习笔记(一)
查看>>
Java 提高篇(一)
查看>>