近期现场的设备出现了 loading 弹出异常的问题,通过排查日志,发现出现了很怪异的现象。
- 网络请求前的日志正常打印,网络请求拦截器中的日志延迟很久才打印,最多有13分钟之后才打印网络请求。
- 查服务器端日志,发现服务器也是13分钟之后接到的网络请求
- 怀疑是线程阻塞或者机器卡住,对多项并行操作增加线程池管理之后问题仍然出现。
- 查阅日志,在网络请求被延迟的这段时间,socket 正常。
最后通过查阅资料与源码,发现如果配置的 Dns 服务异常,会因为 okhttp 解析导致的网络请求延迟,而该代码在请求连接池之前,所以拦截器中的日志也没有执行。
更换Dns即可