收藏
回答

wx.request 频繁报出 接口超时 errno = 5

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.request 微信iOS客户端 0.0.0 0.0.0

当小程序中有一个数据上报请求 /url/abc 时,由于数据上报是一个高频请求,此时会出现大量的 errno = 5 的接口超时,占比大约在 5% 左右,远高于一般的业务请求,合理猜测是微信底层对于此类高频请求做了限制,请官方的解答一下~

回答关注问题邀请回答
收藏

2 个回答

  • 打了个 喷嚏
    打了个 喷嚏
    2023-05-15

    为何不试试we分析

    2023-05-15
    有用
    回复 1
    • Jsy
      Jsy
      2023-05-16
      we 分析是可以,通过自定义事件嘛,但是不能和业务表关联,这是比较麻烦的地方
      2023-05-16
      回复
  • ؞咬了你؞F࿆ū࿆t࿆ū࿆r࿆ē࿆
    ؞咬了你؞F࿆ū࿆t࿆ū࿆r࿆ē࿆
    2023-05-15

    文档中有注明并发数限制,频繁调用估计触发了队列,或者本身接口处理慢了,超过本身的超时限制。

    如果你的这个上报请求高频到1秒十几二十次这种,建议用websocket来上报,上报过程跟服务器保持长连接。

    2023-05-15
    有用
    回复 5
    • Jsy
      Jsy
      2023-05-15
      接口很快的 50ms 内,慢的也不过 80ms。本身 wx.request 就有队列 这不是问题产生的原因,业务接口多了也没出现问题,就这个高频的上报接口有问题
      2023-05-15
      回复
    • Jsy
      Jsy
      2023-05-15
      而且就算接口多了触发了队列,那难道我这些接口就活该超时吗?更何况这些接口本身设置了接口超时 300ms
      2023-05-15
      回复
    • ؞咬了你؞F࿆ū࿆t࿆ū࿆r࿆ē࿆
      ؞咬了你؞F࿆ū࿆t࿆ū࿆r࿆ē࿆
      2023-05-15
      有没可能微信内wx.request排队的队列长度也有限制,可能你排队的任务超过任务队列长度了吧,无限制的队列直接都能把内存塞爆了。所以你的这个上报大概多少毫秒调用一次。
      2023-05-15
      回复
    • ؞咬了你؞F࿆ū࿆t࿆ū࿆r࿆ē࿆
      ؞咬了你؞F࿆ū࿆t࿆ū࿆r࿆ē࿆
      2023-05-15回复Jsy
      如果你肯定接口没问题的话,我建议还是把每次上报请求和普通业务请求的开始时间做个记录下来,再分析下呗。或者如果业务可以的话,别频繁请求,尝试把5秒,10秒,甚至一分钟上报的数据囤起来再一起报给服务器。
      2023-05-15
      回复
    • Jsy
      Jsy
      2023-05-15回复؞咬了你؞F࿆ū࿆t࿆ū࿆r࿆ē࿆
      倒也没有那么多,最多的也就列表 撑死一秒也就 10-20,单纯从接口队列来说 这一点都不够看,本身wx.request 也有队列。另外如果做聚合上报,就一定会存在数据丢失的问题
      2023-05-15
      回复
登录 后发表内容