林子大了什么鸟都有,程序猿做久了什么bug都有。
bug描述
出现在excel导入的时候
线上有问题,本地不可重现
数据量少的时候没问题,excel基本超过1500行就出现问题
查看日志
解决
看日志,应该是失去客户端连接。猜测应该是导入操作的http请求超时。
在导入方法添加日志,发现后台导入逻辑还在执行时候ajax已经返回超时了。猜测导入操作的ajax时长设置有问题。
查看代码,导入操作$.ajax({})提交,设置timeout:0,测试,依然超时。后台使用springboot+easypoi,猜测springboot有设置http超时时长。
修改springboot配置server.connection-timeout=120000为两分钟,测试,依然超时,但是发现一个有趣的地方,每次都是到1分钟时候超时,因此问题肯定不在以上两个地方
全局搜60、1min等无果
再对比本地和线上环境,本地IDE运行,线上多个服务通过fegin相互调用,最终通过nginx代理到外网,对,nginx代理
修改nginx配置如下,问题解决
ps:
可能有童鞋提出导入时间太长,这个也作为优化的一个角度,可是数据再多的时候,也可能2分钟都不够~~~
领取专属 10元无门槛券
私享最新 技术干货