cron表达式

cron表达式

  • 结构

    从左到右: 秒 分 小时 月份中的日期 月份 星期中的日期 年份

  • 各字段含义

    字段 允许值 允许的特殊字符
    0-59 , - * /
    0-59 , - * /
    小时 0-23 , - * /
    日期(DayofMonth) 1-31 , - * / L W C
    月份 1-12或JAN-DEC , - * /
    星期(DayofWeek) 1-7或SUN-SAT(1-SUN) , - * / L C #
    年(可选,留空)(Year) 1970-2099 , - * /
  • 特殊符号的意思

    • *: 表示匹配该域的任意值,如果在minutes域使用*,则表达每分钟都会触发事件

    • ?: 只能用在DayofMonth和DayofWeek两个域。它也匹配域的任意值,但实际不会。因为DayofMonth和DayofWeek会相互影响。例如想在每月的20日触发调度,不管20日到底是星期几,则只能使用如下写法: 13 13 15 20 * ?, 其中最后一位只能用?,而不能使用*,如果使用*表示不管星期几都会触发,实际上并不是这样。

      为了防止天(月)和天(星期)发生冲突的,表示不指定值,当两个字段有一个指定值之后,为了避免冲突,另一个要设为?

    • -:表示范围,5-20表示从5分到20分,每分钟触发一次

    • /: 表示起始时间开始每隔一段时间触发一次,5/20,则5,25,45触发

    • ,: 列出枚举值,5,20则表示在第5分和第20分触发一次

    • L: 表示最后,只能出现在DayofWeek和DayofMonth,如果DayofWeek使用5L,意味的一个星期四触发

    • W: 表示有效工作日(周一到周五),只能出现在DayofMonth域,系统会在离指定日期最近的有效工作日触发,如果使用了5W,如果5日是星期六,则会在4日,星期五触发,如果5日是星期天,则会在6日,星期一触发,ps:不会跨过月份

    • LW: 连用表示某个月最后一个工作日,即最后一个星期五

    • #: 用来确定每个月的第几个星期几,只能出现在DayofMonth域,例如4#2,则某月的第二个星期三

cron表达式例子

0 0 2 1 * ? *    每个月的1号凌晨2点整触发
0 15 10 ? * MON-FRI *   周一到周五每天上午10:15执行作业
0 15 10 ? * 6L 2002-2006   2002-2006年的每个月的最后一个星期五上午10:15执行作业
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 * * ? 2005  2005年的每天上午10:15触发
0 * 14 * * ?   下午2点到2:59期间的每一分钟触发
0 0/5 14 * * ?  没天下午2点到下午2:55期间每5分钟触发一次
0 0/4 14,18 * * ?  每天下午2点期间和下午6点期间每5分钟触发一次
0 0-5 14 * * ?  每天下午2点到2:05期间的每一分钟触发一次
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 ? * 6L  每月的最后一个星期五上午10:15触发
0 15 10 ? * 6L 2002-2005  2002年至2005年的每月的最后一个星期五上午10:15触发
0 15 10 ? * 6#3  每月的第三个星期五上午10:15触发

每年的4.1号上午10点触发
0 0 10 1 4 ? *
每隔15分钟触发一次
0 0/15 * * * ? *
在6点到10点时间段内每隔30分钟提醒一次
0 0/30 6-10 * * ? *

每个星期天的0点执行
0 0 0 ? * 1 *
每天的6点,12点,17点触发一次
0 0 6,12,17 * * ? *
每隔1秒触发一次
0/1 * * * * ? *
每隔星期五的下午5点59分59秒触发
59 59 17 ? * 6 *
每个月的最后一个工作日10点触发
0 0 10 LW * ? *
上一篇:PHP 获取 今日,昨日,上周,本月,某年时间


下一篇:第六章 《子午线59》