上一节已经对云函数有了一定的了解,但是,为了发送订阅消息,只会云函数还是差了那么一点意思,所以接下来的这一节,将带领大家熟悉一下定时触发。
熟悉定时触发
如果云函数需要定时/定期执行,即定时触发,您可以使用云函数定时触发器。已配置定时触发器的云函数,会在相应时间点被自动触发,函数的返回结果不会返回给调用方(就是最后面的return
是看不到的),具体的参数可以参考定时触发。
下面举一个简单的例子来说明定时触发
怎么使用。
package.json内配置定时触发
在package.json内配置定时触发时统一了云厂商的写法,请参考:云函数package.json。
在云函数的package.json中添加配置,一分钟触发一次云函数,如下图:
选择云函数,点击右键
,选择上传并运行
,这样在uniCloud web控制台点击云函数,查看日志详情,就会看到,每一分钟输出一次定时任务出发成功
,上面说的函数的返回结果不会返回给调用方
,就是如下图只有一个请求响应状态: success
,所以写定时触发的时候要做好日志输出。
uniCloud web控制台配置定时触发
在uniCloud web控制台点击需要添加触发器的云函数详情,创建云函数触发器,格式如下:
腾讯云&支付宝云
// 参数是触发器数组,目前仅支持一个触发器,即数组只能填写一个,不可添加多个
// 实际添加时请务必去除注释
[
{
// name: 触发器的名字,规则见下方说明
"name": "sumFun",
// type: 触发器类型,目前仅支持 timer (即定时触发器)
"type": "timer",
// config: 触发器配置,在定时触发器下,config 格式为 cron 表达式,规则见下方说明
"config": "0 0 2 1 * * *"
}
]
阿里云
["cron:0 0 * * * *"]
具体的创建位置如下图,按照上面的格式配置就行。
到这里位置,云函数和定时触发都已经讲解完了,从下一节开始,就要将怎么发送消息了。
超时时间
支付宝云定时任务触发最大支持3小时超时时间(需开启异步超时),非定时触发时超时时间为180秒,客户端请求云函数如果超出180秒云函数断开连接后会停止运行。
阿里云定时任务触发最大支持7200秒超时时间,非定时触发时超时时间为120秒,客户端请求云函数如果超出120秒云函数断开连接后会停止运行。
腾讯云定时任务触发最大支持900秒超时时间。非定时触发时超时时间为30秒,客户端请求云函数时如果超出30秒云函数断开链接后会继续运行,最大能运行到配置的超时时间。
如果超时时间仍然不够用,可以参考云函数递归调用,连续执行多个云函数处理一个任务详情查看
注意:不要把递归云函数写成了死循环。