在线答题小程序线上生产问题解决复盘
~
这几天我一直在观察我最早开发第一个答题小程序的mp后台界面,的开发-开发管理-报错信息
因为我发现这个小程序虽然上线一年了,但是还多少有些报错信息,我想趁暑假把这块清零,具体截图如下所示
~
~
大家看到了吗
虽然不多,但是每天都有几个,我需要清理这个报错,初步计划是按报错次数,从多到少依次处理
但是我遇到了一个很大的麻烦,就是上图里面,1、4
我反复核对了下代码,都没有定位到问题,可以说很简单的逻辑,从逻辑层面根本定位不出,那怎么办呢
错误不会谎报的
解决方案
增加实时日志
在错误的地方把错误所对应的信息实时日志打出来
我是5号下午6点加的这个日志,今天摘果子来了
~
~
最后定位到是这个openid
oAalY4wB2YmjO2_eLDO7ZHXPsypI
那么看日志吧,从日志层面看看能发现什么蛛丝马迹
结果您别说
还真让我找到了,就是上面截图的最后这个 14:04:28,看到这个日志跟其他日志的区别了吗?
因为我输出的是以下三项
1、currentIndex
2、_openid
3、question
唯独这个实时日志没有question
那么问题就很清晰了
结论就是
在刚进错题页面的时候,由于数据加载需要时间,在数据未加载完成之前,用户就点了下一题,结果就造成了现在这个报错。
解决方案
下一题的按钮要通过控制逻辑展示,就是在加载完成之后才展示,而不是任由其发挥
~
说实话我跟进这个问题几天了,今天感觉像抓贼一样,有点兴奋
~
事后我就在分析,因为错题模块和收藏模块逻辑是一样的,为什么收藏没有报错,唯独错题报错了
我看了下数据,瞬时就明白了
~
第一个鹤立鸡群的集合notes就是错题集合,数据量太大了,因为之前也没有加索引所以在加载的时候会很慢
趁机会给这个集合加了索引
索引二个键
_openid
类别
这样就可以保证再进错题集合的时候丝滑般顺畅