云开发云函数用定时触发器重复调用时 会有之前状态残留,怎么办?
发布于 6 年前 作者 jing08 5057 次浏览 来自 官方Issues

通过定时触发器 重复调用云函数 发送短信 每一分钟读取数据库 然后执行任务 执行成功 删除所在集合内的数据 然后再另外一个集合内添加这条数据

逻辑是上面这样的

但是上传触发器以后 每一分钟就会发送一条短信 无限发送

初步分析 重复调用的云函数 保留了待执行数组内的状态… . 即下一次就不读取数据库了 直接发送短信… 求破,

3 回复

云开发函数,建议都用await。异步,或者用promise then的语法有时候会遇到像是数据没刷新进去什么的情况,可能与云函数运行的机制有关,具体不清楚,用await的话就基本没什么问题

第二次分析:for循环中有异步操作,但是函数中同步代码已经执行完毕 异步代码还在执行 没得到结果之前,函数就被“销毁”了

初步分析:每一分钟读取数据库查询获取需要发送短信的数据,但是发送短信的状态没有更新到数据库导致频繁发送短信。

回到顶部