1、问题描述
生产环境图片在下载过程中如果网络有问题或无法下载,停留在下载环节,后续Java流程无法运行。
2、问题排查和定位
思考:
1.首先排查一下生产环境日志运行情况
1)用 cat xxxx.log | grep -10 "查询的内容" ,看一下是否有对应错误信息 。
2)假如没有对应错误信息,可以通过服务ping 一下对应地址 ,看服务器是否可以ping 通
3)假如可以ping 通,再用远程 wget 方法获取数据
用法 :wget 图片地址
4)假如可以下载
在下载的前后 ,增加文件日志 ,放到生产环境 。
核实一下下载状态。
通过日志可以看出数据只是进入了下载过程,并没有结束,一直卡在下载过程中。
下面是代码:
解决方案 :
目前让链接超时 (timeout) , 用 setReadTimeout 方法 ,设置超时时间,让它自动中断,断开链接。
HttpURLConnection conn= (HttpURLConnection)url.openConnection();
conn.setReadTimeout(10*1000)
后台会有报错信息。