Cron表达式是一个具有时间含义的字符串,每个具有时间含义的字符叫做域,域之间用空格隔开。弹性伸缩定时任务支持5个域的Cron表达式,格式为X X X X X
,X
是一个域的占位符。Cron表达式中的每个域依次表示分、时、天、月和星期,每个域可以是确定的取值,也可以是具有逻辑意义的特殊字符。
定时任务配置Cron表达式时,需要注意以下内容:
Cron表达式采用UTC +08:00
时区,即中国时间。因此在配置Cron表达式时,如果计划在中国每天 20:00 点触发任务,设置的Cron表达式应为0 20 * * *
。
Cron表达式具体规则请见下文,本文仅列出常用且当前已支持的Cron表达式规则。
域 | 是否必填 | 取值范围 | 特殊字符 |
---|---|---|---|
分 | 是 | 0-59 | * , - \ |
时 | 是 | 0-23 | * , - \ |
天 | 是 | 1-31 | * , - L W |
月 | 是 | 1-12 | * , - \ |
星期 | 是 | 1-7 | * , - \ L # |
特殊字符 | 含义 | 示例 |
---|---|---|
* | 所有取值范围内的数字。 | 在月域中,* 表示每个月。 |
, | 枚举可能的值。 | 在星期域中,1,2,5 表示星期一、星期二、星期五。 |
- | 指定值的范围。 | 在天域中,28-31 表示月的28、29、30、31号。 |
/ | 数量的递增值。 | 在分钟域中,*/5 表示从第 0 分钟开始的每 5 分钟;3/5 表示从第 3 分钟开始的每 5 分钟。 |
L | 单词 |
|
W | 表示距离天域中指定天最近的工作日(周一至周五)。仅天域支持该字符。 |
说明
|
# | 每月第几个星期几,必须配合具体数字使用,且# 后仅支持1-5。仅星期域支持该字符。 | 7#2 表示月域中指定月份的的第二个星期天。 |
下表以中国时区UTC +08:00为例,说明不同的Cron表达式示例代表的含义。
示例 | 说明 |
---|---|
15 10 * * * | 每天10:15触发任务 |
0 /8 * * * | 每天08:00、16:00、24:00触发任务 |
0 10,14,16 * * * | 每天10:00点、14:00以及16:00触发任务 |
15 10 15 * * | 每月15日10:15触发任务 |
15 10 L * * | 每月最后一天10:15触发任务 |
15 10 * * 6L | 每月最后一个星期六10:15触发任务 |
15 10 * * 6#3 | 每月第三个星期六10:15触发任务 |
10,44 14 * 3 3 | 每年三月的星期三的14:10和14:44触发 |
15 10 * * 1-5 | 每周周一至周五的10:15触发 |
*/30 * 15 * * | 每月15日每隔30分钟触发 |
0 10 15W 3 * | 每年3月15日最近的工作日10:00触发 |