zoukankan      html  css  js  c++  java
  • cron表达式的用法 【比较全面靠谱】

    转:

    cron表达式的用法

    cron表达式通过特定的规则指定时间,用于定时任务,本文简单记录它的部分语法和实例,并不完全,能覆盖日常大部分需求。

    1. 整体结构

    cron表达式是一个字符串,分为6或7个域,每两个域之间用空格分隔,其语法格式为:

    "秒域 分域 时域 日域 月域 周域 年域"

    其中,年域可以省略,省略时表示每年。

    2. 每个域的取值范围

    域名 可取值 可取符号(仅列部分常用)
    秒域 0~59的整数   *    -    ,    /
    分域 0~59的整数   *    -    ,    /
    时域 0~23的整数   *    -    ,    /
    日域 1~31的整数   *    -    ,    /    ?    L
    月域 1~12的整数或JAN~DEC   *    -    ,    /
    周域 1~7的整数或SUN~SAT   *    -    ,    /    ?    L    # 
    年域 1970~2099的整数   *    -    ,    /

    3. 符号的意义

    (1)* 表示可以匹配该域的所有值;

    例如,"0 0 13 * * ?"表示每天的13点执行一次。

    (2)?在cron表达式中必须出现且只能出现1次,用在日域或周域上,表示不确定值、不限制值;

    它与*的区别是,并不能匹配到该域上的所有值,例如指定了3月份每个周五,那么3月份的周五可能只有4个值;

    例如,"0 0 5 6 * ?"表示每个月6日5点钟执行而无论周几,"0 0 5 ? * 3"表示每个周三5点钟执行而无论是几号。

    (3)- 表示匹配该域上的一个范围;

    例如,"0 30 9-15 ? * *"表示每天的9:30-15:30每小时执行一次,"0 1-5 * ? * 1"表示每周日每个小时的1-5分钟每分钟执行一次。

    (4), 表示枚举值;

    例如,"0 0 8,16,23 ? * 1,7"表示每个周六日的8点、16点、23点各执行一次。

    (5)/ 表示起始时间和间隔时间;

    例如,"0 0 3/5 * * ?"表示每天3点开始执行,每隔5个小时执行一次,即3点、8点、13点、18点、23点各执行一次,

    "*/5 * * * * ?"表示每隔5秒钟执行一次,"0 */1 * * * ?"表示每隔1分钟执行一次。

    (6)# 只能用于周域上,#后面的数字表示第几周,如果不存在这个周的值,则不执行;

    例如,"0 0 0 ? * 5#2"表示每个月第2个周四零点执行,"15 30 6 ? * 7#5"表示每个月第5个周六6:30:15执行,如果某个月不存在第5个周六,则不执行。

    (7)L 只能用于日域或周域,用于日域时表示当月最后一天,用于周域如果前面不加数字表示周六,加数字表示最后一个周值;

    例如,"0 0 23 L * ?"表示每月最后一天的23点执行,"0 0 23 ? * L"表示每周六的23点执行,"0 0 23 ? * 3L"表示每月最后一个周二的23点执行。

    4. 一些常见的实例(省略双引号)

    意义 表达式
     每隔5秒钟执行一次            */5  *  *  *  *  ?
     每隔1分钟执行一次            0  */1  *  *  *  ?
     每天1点执行一次     0  0  1  *  *  ?
     每天23点55分执行一次     0  55  23  *  *  ?
     每月最后一天23点执行一次     0  0  23  L  *  ?
     每周六8点执行一次     0  0  8  ?  *  L
     每月最后一个周五,每隔2小时执行一次     0  0  */2  ?  *  6L
     每月的第三个星期五上午10:15执行一次     0  15  10  ?  *  5#3
     在每天下午2点到下午2:05期间的每1分钟执行     0  0-5  14  *  *  ?
     表示周一到周五每天上午10:15执行     0  15  10  ?  *  2-6
     每个月的最后一个星期五上午10:15执行     0  15  10  ?  *  6L 
     每天上午10点,下午2点,4点执行一次     0  0  10,14,16  * * ?
     朝九晚五工作时间内每半小时执行一次     0  0/30  9-17  *  * ?
     每个星期三中午12点执行一次     0  0  12  ?  *  4
     每年三月的星期三的下午2:10和2:44各执行一次       0  10,44  14  ?  3  4 
     每月的第三个星期五上午10:15执行一次     0  15  10  ?  *  6#3
     每月一日凌晨2点30执行一次     0  30  2  1  *  ?
     每分钟的第10秒与第20秒都会执行     10,20  *  *  *  * ?
     每月的第2个星期的周5,凌晨执行     0  0  0  ?  *  6#2

     

  • 相关阅读:
    线段树专辑—— pku 1436 Horizontally Visible Segments
    线段树专辑——pku 3667 Hotel
    线段树专辑——hdu 1540 Tunnel Warfare
    线段树专辑—— hdu 1828 Picture
    线段树专辑—— hdu 1542 Atlantis
    线段树专辑 —— pku 2482 Stars in Your Window
    线段树专辑 —— pku 3225 Help with Intervals
    线段树专辑—— hdu 1255 覆盖的面积
    线段树专辑—— hdu 3016 Man Down
    Ajax跨域访问
  • 原文地址:https://www.cnblogs.com/libin6505/p/11277939.html
Copyright © 2011-2022 走看看