zoukankan      html  css  js  c++  java
  • Quartz 定时任务设置某个时间区间每隔一定时间触发的cron表达式

    原文:https://blog.csdn.net/yansong_8686/article/details/46991189

    Cron表达式

    Quartz使用类似于Linux下的Cron表达式定义时间规则,Cron表达式由6或7个由空格分隔的时间字段组成。

    Cron表达式时间字段(从左到右依次为):

    位置 时间域名 允许值 允许的特殊字符
    1 秒 0-59 , - * /
    2 分钟 0-59 , - * /
    3 小时 0-23 , - * /
    4 日期 1-31 , - * ? / L W C
    5 月份 1-12 , - * /
    6 星期 1-7 , - * ? / L C #
    7 年(可选) 空值1970-2099 , - * /

    今天项目中遇到了一个定时任务,想着做成每天凌晨0点10分开始执行,然后每半小时执行一次,本来想着特别简单,就是

    0 10/30 0 * * ? 这种写法,结果找了一下网上的示例才发现这种写法的意思是:每天0点10分到1点50每5分钟运行一次,

    开始于00:10,结束于1:50;于是又改成 0 10/30 0-23 * * ? 这样总该对了把,发现还是不对,需要改成

    0 10-59/30 0-23 * * ? 才可以达到自己想要的效果,结果同事说其实,还可以这样写0 10,40 0-23 * * ? 效果一样,不过后来想了一下,如果是每5分钟一次,估计就得列很多数字了,所以,还是推荐使用范围的那种。这和Linux的crontab很相似的。

     =======================================

    以下是网上找的相关资料,仅供参考!

    Cron表达式示例:

    表达式 说明
    "0 0 12 * * ? " 每天12点运行
    "0 15 10 * * ?" 每天10:15运行
    "0 15 10 * * ? 2011" 2011年的每天10:15运行
    "0 * 14 * * ?" 每天14点到15点之间每分钟运行一次,开始于14:00,结束于14:59。
    "0 0/5 14 * * ?" 每天14点到15点每5分钟运行一次,开始于14:00,结束于14:55。
    "0 0/5 14,18 * * ?" 每天14点到15点每5分钟运行一次,此外每天18点到19点每5钟也运行一次。
    "0 0-5 14 * * ?" 每天14:00点到14:05,每分钟运行一次。
    "0 10,44 14 ? 3 WED"
    3月每周三的14:10分到14:44,每分钟运行一次。

    "0 15 10 ? * MON-FRI" 每周一,二,三,四,五的10:15分运行。
    "0 15 10 15 * ?" 每月15日10:15分运行。
    "0 15 10 L * ?" 每月最后一天10:15分运行。
    "0 15 10 ? * 6L" 每月最后一个星期五10:15分运行。
    "0 15 10 ? * 6L 2007-2009" 在2007,2008,2009年每个月的最后一个星期五的10:15分运行。
    "0 15 10 ? * 6#3" 每月第三个星期五的10:15分运行。
      每隔5秒执行一次:*/5 * * * * ?

      每隔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 * * ?

    0 0 10,14,16 * * ? 每天上午10点,下午2点,4点
    0 0/30 9-17 * * ?   朝九晚五工作时间内每半小时
    0 0 12 ? * WED 表示每个星期三中午12点 
    "0 0 12 * * ?" 每天中午12点触发 
    "0 15 10 ? * *" 每天上午10:15触发 
    "0 15 10 * * ?" 每天上午10:15触发 
    "0 15 10 * * ? *" 每天上午10:15触发 
    "0 15 10 * * ? 2005" 2005年的每天上午10:15触发 
    "0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发 
    "0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发 
    "0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发 
    "0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发 
    "0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发 
    "0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发 
    "0 15 10 15 * ?" 每月15日上午10:15触发 
    "0 15 10 L * ?" 每月最后一日的上午10:15触发 
    "0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发 
    "0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发 
    "0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发 
    ---------------------
    作者:追赶的蜗牛
    来源:CSDN
    原文:https://blog.csdn.net/yansong_8686/article/details/46991189
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    一个好的时间函数
    Codeforces 785E. Anton and Permutation
    Codeforces 785 D. Anton and School
    Codeforces 510 E. Fox And Dinner
    Codeforces 242 E. XOR on Segment
    Codeforces 629 E. Famil Door and Roads
    Codeforces 600E. Lomsat gelral(Dsu on tree学习)
    Codeforces 438D The Child and Sequence
    Codeforces 729E Subordinates
    【ATcoder】D
  • 原文地址:https://www.cnblogs.com/shihaiming/p/10113423.html
Copyright © 2011-2022 走看看