函数定时触发器Cron表达式规则
- @every格式
@every NUnit,其中N表示一个正整数,Unit可以为ns, µs, ms, s, m, h,表示每隔N个Unit时间触发一次函数如表1所示。
- 标准cron表达式
cron表达式格式要求“秒 分 时 日 月 周(可选)”,每个字段间以空格隔开,其中各字段说明如表2所示。
表2 cron表达式字段说明 字段
说明
取值范围
允许的特殊字符
CRON_TZ
可选。不设置则默认使用region所在时区。
-
-
秒
必选
0-59
, - * /
分钟
必选
0-59
, - * /
时
必选
0-23
, - * /
日(Day of month)
必选
1-31
, - * ? /
月
必选
1-12或者Jan-Dec(英文不区分大小写)如表3所示。
, - * /
星期几(Day of week)
可选
0-6或者Sun-Sat(0表示星期天,英文不区分大小写),如表4所示。
, - * ? /
表3 月份字段取值说明 月份
数字
英文简写
1月
1
Jan
2月
2
Feb
3月
3
Mar
4月
4
Apr
5月
5
May
6月
6
Jun
7月
7
Jul
8月
8
Aug
9月
9
Sep
10月
10
Oct
11月
11
Nov
12月
12
Dec
cron表达式字段特殊字符说明如表5所示。
表5 特殊字符说明 特殊字符
含义
说明
*
表示该字段中的所有值
在“分钟”字段中表示每一分钟都执行。
,
指定多个值(可以不连续)
在“月”字段中指定“Jan,Apr,Jul,Oct”或者“1,4,7,10”,表示1月,4月,7月和10月,在“星期几”字段中指定“Sat,Sun”或者“6,0”表示周六,周日。
-
指定一个范围
在“分钟”字段中使用0-3,表示从0分到3分
?
指定一个或另一个
仅“日”和“星期几”字段可以指定。例如,如果指定了一个特定的日期,但你不关心该日期对应星期几,那么“星期几”字段就可以使用该特殊字符。
/
表示起步和步幅,n/m表示从n开始,每次增加m
在“分钟”字段1/3表示在满足其它字段情况下,从时间1分(例如00:01:00)开始,每隔3分钟触发一次。
cron表达式配置示例如表6所示。
表6 cron表达式配置示例 配置实例
Cron 表达式(以北京时区为例)
每天12点调度函数
CRON_TZ=Asia/Shanghai 0 0 12 * * *
每天12:30调度函数
CRON_TZ=Asia/Shanghai 0 30 12 * * *
每小时的26分,29分,33分调度函数
CRON_TZ=Asia/Shanghai 0 26,29,33 * * * *
周一到周五的每天12:30调度函数
CRON_TZ=Asia/Shanghai 0 30 12 ? * MON-FRI
周一到周五的每天12:00~14:59每5分钟调度函数
CRON_TZ=Asia/Shanghai 0 0/5 12-14 ? * MON-FRI
一月到四月每天12:00调度函数
CRON_TZ=Asia/Shanghai 0 0 12 ? JAN,FEB,MAR,APR *
Cron表达式未设置时,默认以region所在时区运行。如果您的任务需要按照特定时区运行,可以通过CRON_TZ指定,例如在北京时间每个月一号的04:00触发函数执行,则可以使用CRON_TZ=Asia/Shanghai 0 0 4 1 * *。不同地域的时区表达式存在差异,请以实际情况为准。