到了考试周以来,之前一直沉寂的查绩点的微信小程序的用户量突然猛增,一下子飞到了1.5k个用户,每天5k次请求,导致我既欣喜又担忧,每天战战兢兢地监测着服务器的状态,生怕服务器挂掉了。
由于用户量猛增,也导致了很多问题,包括我之前没有经过很多测试就上线,导致经常出错,后台log出来很多error。
但是用户比较多,我又不敢轻易改,怕带来新的bug,同时也开始实习了,没什么时间,就拖着了。
后来因为一直陷入了被认为在套密码的怀疑之中,接受了@donggu的采访,发表了一篇微信文章来阐述所有目前遇到的问题和现状。
欢迎大家关注@donggu的微信公众号来查看这篇文章:
关于查询到别人的成绩
有学弟发邮件给我反馈一个bug,就是他会查到另一个不认识的人的成绩。
我就很奇怪,理论上来说不可能啊。每一个请求都是独立的,我没有写类,都是过程化的代码,难道异步的操作,多个子线程读了同一个内存块?这触及到了我的知识盲区,我以为概率还是很小,所以先放在一边了。
在距离我上一次重启进程的第5天,这种情况出现的概率变大了,有两个认识的同学直接在微信上向我反馈,也有人在同心云上面说这个问题,我开始担心。到后面,我再重启了一次进程,好像就解决了。虽然重启能解决这个问题,但是我不明白为何不稳定,需要重启。
关于验证码
之前只知道很多浏览器不能保存xuanke网的登录状态是因为,浏览器请求favicon.ico文件的时候发生了404,导致了xuanke网直接把登录状态清除。所以只要不请求favicon就不会丢失登录状态。
今天被一个高手告知只要不请求验证码图片就不需要识别验证码(
我还能说什么(
只能做一个悲伤的表情。:(
于是当时就去把代码改了,把请求验证码图片的操作和识别验证码的操作注释了,测试发现的确如此。
测试多次都没问题之后,就重新部署到了生产环境。
部署的时候为了方便的迁移而不影响当前正在请求的用户,我是另外开了一个进程实例,然后监听另外一个端口,再把nginx的监听改成新的监听端口,再reload Nginx,灰度测试两分钟没问题之后就再把进程杀掉。
至今仍然被大佬实力碾压,无话可说,承让承让:)
Error数量的减少
因为之前识别验证码是用神经网络预测,但毕竟用户量比较大的时候,还是会有一定数量的情况识别错误。导致后台一片红色(
在知道可以跳过验证码之后,后台的error明显少了很多,现在打开都是一篇绿色(hhhh
感谢
感谢那些给我反馈bug和修改建议的同学,同时还要感谢那位开发查电费小程序的同学一直在同心云帮我告诉大家我不是来盗号的(
非常感谢你们。