远程主机强迫关闭了一个现有的连接。
问题描述:
前端调用一个导出数据接口时,有时候无数据返回。 查看日志: jetty报错::远程主机强迫关闭了一个现有的连接。
解决问题:
-
首先我翻看这个接口的代码,没有找到问题。然后我又祭出了重启大法,项目重新编译,启动,然后重新访问这个接口,很不幸,这个bug还是复现了,难受啊、、、
-
我仔细查看日志,发现日志没有报其他的错误,这就很奇怪。
-
我又在代码中加了日志,想看看究竟发生了什么。然后发现原因是这个接口耗时太长,前端请求超时,才报了这个错误
jetty报错::远程主机强迫关闭了一个现有的连接。
-
这个接口的主要的功能就是导出数据报表,有两部分构成,一部分是查询统计数据,另一部分就是讲数据补充到excel中,然后导出。
打印的日志,统计时间(单位:毫秒)
DEBUG - ==================================================================统计消耗时间:1381
DEBUG - ==================================================================导出完毕消耗时间:43105
日志告诉我发生了什么,统计部分所用时间是1秒左右,还在忍受范围之内,但是往表格中填充数据就花了这么长时间,这不能忍啊!罪魁祸首找到了!
-
为什么这么填充过程这么慢呢,我又仔细查看代码,发现在导出excel的过程中,一次是导出10000行数据,我寻思是不是这个过程数据太多耗时太长呢?我把这一个参数改成5000,然后编译,运行,重新访问。我再一次查看日志,
DEBUG - ==================================================================导出完毕消耗时间:6705
后台也不再报错,打印出来的时间也还能接受吧,至此,这个bug算是解决了吧