1. 现象
最近对知识竞赛答题小程序进行了重构,设置了与服务器时间对齐功能。
- 通过云函数获取服务器时间,与本地时间差在5秒之间(考虑手机均实时校对时间,阈值设得相对较小)
- 开始按钮对时间差进行核对
出现的现象有:
- 用户表users记录多,成绩表scores记录少
- 成绩表scores中有些无使用记录
疑问:进入小程序后,为何不使用?
2. 排查
初步考虑是云函数冷启动导致。测试:
- 早起,删除小程序,清空本地数据
- 重新打开小程序,出现时间差超过阈值,阻止进入功能页,因此无成绩scores记录
3. 原因及修复
首先明确,正常情况下,云服务器的时间与本地时间差在200毫秒以内,甚至更少。
原因:云函数冷启动,可能需要3-5秒的时间,而阈值设得太小。
修复:在调大阈值的同时,还发现另一个小bug,一并修复。
问题:能否实现定时刷新云函数,保证最小使用次数又能激活云函数。
欢迎体验云知识竞赛小程序:)
可以定时触发云函数,参考https://cloud.tencent.com/document/product/876/32314,或者预置并发,参考https://cloud.tencent.com/document/product/876/64971
不过并发数过大还是会出现冷启动的问题,还是要留有充足的阈值