zoukankan      html  css  js  c++  java
  • Spring定时器Quartz的使用

        在JavaEE系统中,我们会经常用到定时任务,比如每天凌晨生成前天报表,每一小时生成汇总数据等等,定时更新某某操作……。

      我们可以使用java.util.Timer结合java.util.TimerTask来完成这项工作,但是调度控制非常不方便,并且我们需要大量的代码。
    使用Quartz框架无疑是非常好的选择,并且与Spring可以非常方便的集成,下面介绍它们集成方法和Cron表达式的详细介绍。

      基于XML的方式实现Spring  Quartz 虽然配置起来特别的方便,但是Spring还支持基本注解的方式来配置;

      参考关于Spring 任务调度之task:scheduler与task:executor配置的详解

    1、引入相应的Jar包;

    2、 Spring配置文件:spring-timer.xml。;

      在配置文件头部加入定时器的命名空间,xmlns 多加下面的内容

      

      在xsi:schemaLocation多加下面的内容

      

      自动配置扫描spring配置文件里面配置内容

      

      

        

      任务调度器的配置详细参数说明:

        task:scheduler/@pool-size:调度线程池的大小,调度线程在被调度任务完成前不会空闲 

        task:scheduled/@cron:cron表达式,注意,若上次任务未完成,即使到了下一次调度时间,任务也不会重复调度

        

      任务执行器配置详细参数说明:  
        task:executor/@pool-size:可以指定执行线程池的初始大小、最大大小 
        task:executor/@queue-capacity:等待执行的任务队列的容量 
        task:executor/@rejection-policy:当等待队列爆了时的策略,分为丢弃、由任务执行器直接运行等方式

      Demo演示:(注解版)  @Service 或者@Component

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

      常用:

      @Scheduled(cron = "0/1 * * * * ? ") // 每隔1秒隔行一次

      @Scheduled(cron = "0 */1 * * * ?") // 每隔1分隔行一次

      @Scheduled(cron = "0 0 */30 * * ?") 


    字段名 允许的值 允许的特殊字符 
    秒 0-59 , – * / 
    分 0-59 , – * / 
    小时 0-23 , – * / 
    日 1-31 , – * ? / L W C 
    月 1-12 or JAN-DEC , – * / 
    周几 1-7 or SUN-SAT , – * ? / L C # MON FRI 
    年 (可选字段) empty, 1970-2099 , – * /

    “*” :      字符可以用于所有字段,在“分”字段中设为"*"表示"每一分钟"的含义。

    “?”字符:表示不确定的值 
    “,”字符:指定数个值 
    “-”字符:指定一个值的范围 
    “/”字符:指定一个值的增加幅度。n/m表示从n开始,每次增加m 
    “L”字符:用在日表示一个月中的最后一天,用在周表示该月最后 一个星期X 
    “W”字符:指定离给定日期最近的工作日(周一到周五) 
    “#”字符:表示该月第几个周X。6#3表示该月第3个周五

      Quartz专栏系列

       1.Quartz学习——Quartz大致介绍(一)

       2.Quartz学习——Quartz简单入门Demo(二)

       3.Quartz学习——Spring和Quartz集成详解(三)

       4.Quartz学习——SSMM(Spring+SpringMVC+Mybatis+Mysql)和Quartz集成详解(四)

       5.Quartz源码——JobStore保存JonDetail和Trigger源码分析(一)

       6.Quartz源码——scheduler.start()启动源码分析(二)

       7.Quartz源码——QuartzSchedulerThread.run() 源码分析(三)

       8.Quartz源码——Quartz调度器的Misfire处理规则(四)

      

      

  • 相关阅读:
    活动安排
    中国剩余定理
    欧拉回路
    单词游戏
    Ant Trip
    John's Trip
    太鼓达人
    相框
    原始生物
    Blockade
  • 原文地址:https://www.cnblogs.com/buyige/p/9443775.html
Copyright © 2011-2022 走看看