获得过 0 次赞
回答过的问题获得 0 次赞
分享过的文章/案例获得 0 次赞
评论与回复获得 0 次赞
- 那个小游戏广告的adUnitId是从哪里获取的
那个小游戏广告的adUnitId是从哪里获取的
2018-06-21 - 一次小程序 wx.request 请求超时排查
现象: 小程序使用wx.request访问接口时候遇到请求被取消,request:fail timeout的情况,但其他接口又正常。 初步判断是这个接口本身的问题。因为就这个接口有问题。 查 nginx 日志,客户端请求的时候并没有看到对应的ng访问日志,看起来好像客户端根本没有连接到ng。但在客户端cancel连接的时候,服务端出现了一个http状态499的日志记录。说明实际客户端和服务端实际是有连接的。只是客户端主动断开连接了。 判断是客户端超时主动断开。调整小程序超时参数,原先10秒,现在设成120秒。想看看是不是真的是执行时间很多长。 重试接口,果然此时接口过了很长时间返回了状态200。说明接口正常工作,就是执行时间很长。然后原先配置的超时时间比较小,导致小程序主动关闭了连接。关闭连接的时候小程序报了request:fail timeout,nginx在这个时候就报了499错误。 我们用的框架是 Yii2,此时去看框架的debug日志,发现数据库执行的时间长达30秒。看具体执行的sql情况。发现两个sql问题。 一个sql未加索引,一个行锁等待时间过长。 第一个问题调整索引就可以解决。 第二个问题判断是其他程序把数据锁住了。查代码发现有一个定时程序会反复频繁对数据加锁,优化这个定时程序逻辑,降低行锁次数。 然后问题解决。 再把小程序超时时间恢复,完成。
2019-06-05