You need to enable JavaScript to run this app.
导航

Cron表达式介绍

最近更新时间2022.05.13 10:42:43

首次发布时间2022.03.01 09:10:58

Cron表达式介绍

Cron表达式是一个具有时间含义的字符串,每个具有时间含义的字符叫做域,域之间用空格隔开。弹性伸缩定时任务支持5个域的Cron表达式,格式为X X X X XX 是一个域的占位符。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

单词 Last 的缩写,表示最后一天。仅天域和星期域支持该字符。

  • 在天域中,L表示月域中指定月份的最后一天。
  • 在星期域中,L表示一个星期的最后一天,即星期天,必须配合具体星期数使用。6L表示月域中指定月份的最后一个星期六;4L,5L表示月域中指定月份的最后一个星期四、星期五。

W

表示距离天域中指定天最近的工作日(周一至周五)。仅天域支持该字符。

15W表示每月 15 日最近的工作日。如果 15 号为工作日,则结果为 15 号;如果 15 号为星期六,结果为 14 号;如果 15 号为星期日,结果为 16 号。

说明

  • 最近的工作日应在本月中。例如:指定为1W时,如果 1 号是星期六,则触发时间为 3 号(星期一);指定为31W时,如果 31 号是星期日,则触发时间为 29 号(星期五)。
  • 使用W时只支持单天,不支持日期范围。
  • LW表示本月最后一个工作日。
#每月第几个星期几,必须配合具体数字使用,且#后仅支持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触发