如果云函数需要定时 / 定期执行,也就是定时触发,我们可以使用云函数定时触发器。配置了定时触发器的云函数,会在相应时间点被自动触发,函数的返回结果不会返回给调用方。
在需要添加触发器的云函数目录下新建文件 config.json
,格式如下:
{
// triggers 字段是触发器数组,目前仅支持一个触发器,即数组只能填写一个,不可添加多个
"triggers": [
{
// name: 触发器的名字,规则见下方说明
"name": "myTrigger",
// type: 触发器类型,目前仅支持 timer (即 定时触发器)
"type": "timer",
// config: 触发器配置,在定时触发器下,config 格式为 cron 表达式,规则见下方说明
"config": "0 0 2 1 * * *"
}
]
}
字段规则:
Cron 表达式有七个必需字段,按空格分隔。
第一位 | 第二位 | 第三位 | 第四位 | 第五位 | 第六位 | 第七位 |
---|---|---|---|---|---|---|
秒 | 分钟 | 小时 | 日 | 月 | 星期 | 年 |
其中,每个字段都有相应的取值范围:
字段 | 值 | 通配符 |
---|---|---|
秒 | 0-59 的整数 | , - _ / |
分钟 | 0-59 的整数 | , - _ / |
小时 | 0-23 的整数 | , - _ / |
日 | 1-31 的整数(需要考虑月的天数) | , - _ / |
月 | 1-12 的整数 或 JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC | , - _ / |
星期 | 0-6 的整数 或 MON,TUE,WED,THU,FRI,SAT,SUN;其中 0 指星期一,1 指星期二,依次类推 | , - _ / |
年 | 1970~2099 的整数 | , - * / |
通配符 | 含义 |
---|---|
, (逗号) | 代表取用逗号隔开的字符的并集。例如:在“小时”字段中 1,2,3 表示 1 点、2 点和 3 点 |
- (破折号) | 包含指定范围的所有值。例如:在“日”字段中,1-15 包含指定月份的 1 号到 15 号 |
* (星号) | 表示所有值。在“小时”字段中,* 表示每个小时 |
/ (正斜杠) | 指定增量。在“分钟”字段中,输入 1/10 以指定从第一分钟开始的每隔十分钟重复。例如,第 11 分钟、第 21 分钟和第 31 分钟,依此类推 |
下面展示了一些 Cron 表达式和相关含义的示例:
*/5 * * * * * *
表示每5秒触发一次0 0 2 1 * * *
表示在每月的1日的凌晨2点触发0 15 10 * * MON-FRI *
表示在周一到周五每天上午10:15触发0 0 10,14,16 * * * *
表示在每天上午10点,下午2点,4点触发0 */30 9-17 * * * *
表示在每天上午9点到下午5点内每半小时触发0 0 12 * * WED *
表示在每个星期三中午12点触发