0.定时触发器简述
- 作用:让云函数根据一定的规则在指定时间/指定周期触发
- 效果:相当于在小程序端使用callFunction方法调用云函数
- 注意:触发器配置中不能传递参数,参数要写在要触发的云函数中
1.创建触发器
- 在要使用触发器的云函数中新建config.json(原本有的就不用新建)
- 按下面形式配置triggers(删除所有注释)
// triggers 字段是触发器数组,目前仅支持一个触发器,即数组只能填写一个,不可添加多个
"triggers": [
{
// name: 触发器的名字,规则见下方说明
"name": "myTrigger",
// type: 触发器类型,目前仅支持 timer (即 定时触发器)
"type": "timer",
// config: 触发器配置,在定时触发器下,config 格式为 cron 表达式,规则见下方说明
"config": "0 0 2 1 * * *"
}
]
复制代码
-
字段说明
- name:自定义的触发器名称。同一个云函数可以有多个触发器,但不能有同名触发器
- type:只支持timer
- config:触发的时间配置。详细格式见下
-
config字段格式(Cron表达式)说明:
- 七个字段:秒 分钟 小时 日 月 星期 年
- 每个字段之间用 空格 分割
-
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 的整数 或 SUN,MON,TUE,WED,THU,FRI,SAT;其中 0 指周日,1 指周一,依次类推,6 指周六 | , – * / |
年 | 1970~2099 的整数 |
- Cron表达式通配符
通配符 | 含义 |
---|---|
, (逗号) | 代表取用逗号隔开的字符的并集。例如:在“小时”字段中 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点触发
复制代码
2.使用触发器
- 注意,triggers是在config.json中的“根级”,若原本云函数中有config.json的话可能会有permission字段,triggers要和permission【同级】,不要写到permission里面去了
- 上传整个云函数:右键云函数,上传并部署
- 上传触发器:右键config.json,上传触发器
3.可能的报错
- 若报错为文件不是json格式
- 检查是否符合json格式。可以网上找在线检测工具,将你的字段复制过去检查一下
- 检查是否有注释没有删除,json中不能留注释
- 若报错为triggers中的字段不合法
- 检查triggers是否写在最外层,而不是写到其他字段里面去了
- 检查内部Crons是否空格分割各个字段,实在不行就复制官方文档中的例子,再调整成自己需要的规则
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END