调用远程服务失败:read timed out
描述:
之前运行一直正常,用户做了一些操作,比如导入了一批数据,然后报504。
测试了一下,用个人电脑访问生产环境会出现错误,然后测试了一下本地代码正常,测试服务器代码正常,然后用本地代码加载生产数据库也正常,去到生产服务器,用生产环境的那个电脑运行也正常。
跟了一下代码,发现域名访问时,时间只要超过5秒,前端会自动返回:调用失败。实际后台代码还在继续运行。
分析:
这种问题,应该是网关设置问题,数据库索引问题。当数据量变大之后,比如,用户导入了大量数据,查询时耗时就会比较多,造成问题的出现。
解决办法:
1.改网关的设置,将相关控制时间的地方改大些。(ReadTimedout值改大些)
2.优化功能。如果数据库没有索引,加相关索引(主键索引、外键索引等)