定时触发-uniapp + uniCloud 订阅消息实战教程(三)

发布于:2024-06-25 ⋅ 阅读:(49) ⋅ 点赞:(0)

上一节已经对云函数有了一定的了解,但是,为了发送订阅消息,只会云函数还是差了那么一点意思,所以接下来的这一节,将带领大家熟悉一下定时触发。

熟悉定时触发

如果云函数需要定时/定期执行,即定时触发,您可以使用云函数定时触发器。已配置定时触发器的云函数,会在相应时间点被自动触发,函数的返回结果不会返回给调用方(就是最后面的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秒云函数断开链接后会继续运行,最大能运行到配置的超时时间。

如果超时时间仍然不够用,可以参考云函数递归调用,连续执行多个云函数处理一个任务详情查看

注意:不要把递归云函数写成了死循环。


网站公告

今日签到

点亮在社区的每一天
去签到