Cron表达式说明
Cron表达式是一个字符串,字符串以空格隔开,分为 5 或 6 个域,每一个域代表一个含义,系统支持的表达式格式如下:
Seconds Minutes Hours DayofMonth Month [DayofWeek]
其中 DayofWeek 为可选域。
每一个域可出现的字符如下:
Seconds: 可出现"* / , -"四个字符,有效范围为 0-59 的整数
Minutes: 可出现"* / , -"四个字符,有效范围为 0-59 的整数
Hours: 可出现"* / , -"四个字符,有效范围为 0-23 的整数
DayofMonth: 可出现"* / , - ?"五个字符,有效范围为 0-31 的整数
Month: 可出现", - * /"四个字符,有效范围为 1-12 的整数或 JAN-DEC
DayofWeek: 可出现"* / , - ?"五个字符,有效范围为 0-6 的整数或 SUN-SAT 两个范围。0 表示星期天,1 表示星期一, 依次类推
各个字符的含义如下:
* 表示匹配该域的任意值,假如在 Minutes 域使用 *, 即表示每分钟都会触发事件。
? 字符仅被用于天(月)和天(星期)两个子表达式,表示不指定值,当 2 个子表达式其中之一被指定了值以后,为了避免冲突,需要将另一个子表达式的值设为“?”。
- 表示范围,例如在 Minutes 域使用 5-20,表示从 5 分到 20 分钟每分钟触发一次。
/ 表示起始时间开始触发,然后每隔固定时间触发一次,例如在 Minutes 域使用 20/5,则意味着 5 分钟触发一次,而 25,45 等分别触发一次。
, 表示列出枚举值值。例如:在 Minutes 域使用 5,20,则意味着在 5 和 20 分每分钟触发一次。
一些例子:
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 * 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 触发