本文作者:小黑黑

Cron表达式详解

小黑黑 1年前 ( 2019-03-10 ) 480 抢沙发
Cron表达式详解摘要: 一、格式        Cron表达式是由空格分割的6或7个字段组成的字符串。字段可以包含任何允许的...

一、格式

        Cron表达式是由空格分割的6或7个字段组成的字符串。字段可以包含任何允许的值,以及该字段允许的特殊字符的各种组合。字段如下:

字段名称强制性允许的值允许的特殊字符
0-59, - * /
分钟
0-59, - * /
小时0-23, - * /
1-31, - * ? / L W
1-12 或 JAN-DEC, - * /
1-7 或 SUN-SAT, - * ? L #
空, 1970-2099, - * /

二、特殊字符

* (“所有值”): 用于字段中的所有值,例如:分钟字段中的“ * ”表示“每分钟”。

? (“无特定值”): 该字符必须出现在天或周中的其中一个,而另一个则不需要。例如:如果我们希望触发器在该月的某个特定日期(例如,第10天)触发,但不关心恰好再一周的哪一天。

- :用于指定范围。例如:小时字段中的“10-12”表示“小时10,11,12"。

, : 用于指定其他值。例如,星期字段中的“MON, WED,FRI”表示“星期一,星期三,星期五”。

/ :   用于指定增量。例如:秒字段中的“0/15”表示从每分钟的0秒开始,每15分钟执行一次(秒0,15,30和45)。月字段中的“1/3”表示“从该月的第一天开始每3天触发一次”。

L: 在允许的两个字段的每一个中具有不同的含义。例如:日期字段中的值“L”表示“月份的最后一天”。如果在星期字段中单独使用,则仅表示“7”或“SAT”。但是,如果在星期几字段中使用另一个值后,则表示“该月的最后一个星期几”,例如:“6L”表示“该月的最后一个星期五”。你还可以指定从该月的最后一天开始的偏移量,例如“L-3”,这意味着该日历月的倒数第三天。

W:  用于指定最接近给定日期的工作日(周一至周五)。例如,如果你指定“15W”作为日期字段的值,则含义为“到该月15日的最近工作日”。因此,如果15日是星期六,触发器将在14日星期五触发。如果15日是星期日,那么触发器将在16日星期一触。如果15日是星期二,那么它将在星期二15日触发。但是,如果你指定“1W”作为 日期的值,并且第一天是星期六,则触发器将在星期一触发,因此它不会“跳过”一个月的边界。“L”和“W”字符也可以在日期字段中组合以产生“LW”,这意味着“本月最后一个工作日”。

#: 用于指定当月的“第n个”xxx天。例如,星期几字段中的“6#3”的值意味着“该月的第三个星期五”(6代表星期五,#3代表该月的第3个星期)。其他例子:“2#1”代表“该月的第一个星期一”,“4#5”代表该月的第五个星期三。

三、例子   

0 0 12 * * ?每天中午12点触发
0 15 10 ? * *每天上午10:15触发
0 15 10 * * ?每天上午10:15触发
0 15 10 * * ? *每天上午10::15触发
0 * 14 * * ?每天下午2点触发,下午2:59结束,每分钟触发一次
0 0/5 14 * * ?每天下午2点触发,2:55结束,每5分钟触发一次
0 0/5 14,18 * * ?从下午2点开始没隔5分钟触发一次,下午2:55结束,从下午6点每隔5分钟触发一次,6:55结束
0 0-5 14 * * ?每天下午2点开始,每天下午2:05结束
0 10,44 14 ? 3 WED3月份的每个星期三下午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 L-2 * ?每个月的倒数第二天上午10:15触发
0 15 10 ? * 6L每个月的最后一个星期五上午10:15触发
0 15 10 ? * 6L 2019-2020在2019年,2020年的每个月的每个星期五上午10:15触发
0 15 10 ? * 6#3
每个月的第三个星期五上午10:15触发
0 0 12 1/5 * ?
从每月的第一天开始,中午12点触发
0 11 11 11 11 ?
每年11月11日上午11:11触发


分享到: 网站分享代码

发表评论

快捷回复:

评论列表 (暂无评论,480人围观)参与讨论

还没有评论,来说两句吧...