- 当前 Bug 的表现(可附上截图)
在微信小程序云开发中:在云函数里使用触发器更新数据库里的数据,只有上传后第一次执行成功:
云函数 getYi 的日志:
返回结果:
{"stats":{"updated":1},"errMsg":"document.update:ok"}
后面自动执行的都显示:
云函数 getYi 的日志:
返回结果:
{"stats":{"updated":0},"errMsg":"document.update:ok"}
虽然显示云函数调用成功,但检查数据库发现后面触发器自动执行后,数据库里的数据没有得到更新。
- 预期表现
使用触发器云函数update数据库数据,数据每次应该得到更新。
- 复现路径
云函数 getYi 的主要代码:
// config.json
76106-1/https://mmbiz.qlogo.cn/mmbiz_png/NGaGUQ0MfmhUZAhTpkmHKt2bjrU0aakHLjibvSvbibzCC96nqial8Yiau1mztyPGz3cyMtdrCpLWIlp7ytIJjNiaEOQ/0?" border=0 >
其中触发器每10s执行一次。
// index.js
76106-1/https://mmbiz.qlogo.cn/mmbiz_png/NGaGUQ0MfmhUZAhTpkmHKt2bjrU0aakHzs5gNfewvvo6U8JTTAqISXMjCmVVBKz7ibqAwNibEvY6dpAeYLhojib2g/0?" border=0 >
云数据库yiDB:有一个_ID是 yiDB-data 的数据,但是上传部署云函数 getYi 后,只有第一次执行时能更新 yiDB-data 数据,后面触发器每隔10s自动执行的都更新不了数据。
微信小程序开发问题解答
微信小程序开发者回答:
云函数实际在执行用户请求的时候,是起了一个容器,当短时间内频繁有用户请求的时候,容器会进行复用已加快响应速度。
因此,如果想要代码每次都会被执行,需要把代码逻辑写到main函数内部。复用容器的时候,初始化代码(main函数外)只会被首次执行
微信小程序开发者回答:
怎么解决的啊,可不可以详细点
微信小程序开发者回答:
该问题已解决,要执行的内容必须都放在 exports.main 里面。
本文网址:http://www.91bianli.com/weixinxiaochengxu/25611.html