HttpClient请求无响应引发的血案

本文探讨了在处理大量数据时,从单线程切换到多线程后,程序出现停止响应的问题。原因是HttpClient默认的响应超时未设置,导致线程在等待长时间无响应的Http连接。通过设置响应超时可以避免此类问题,确保程序的正常运行。
摘要由CSDN通过智能技术生成

最近工作需要处理20W的数据,用单线程去请求接口(具体这个接口干啥不重要),处理了大概30多个小时。由于出了点原因,这个20W数据需要重新跑,如果在跑30个小时,那也太浪费时间了。我们把单线程换成了多线程,然后程序跑了几个小时后,忽然就不继续处理了。这是为什么?


首先来看下多线程处理的流程:


在来看下:httpClient请求工具方法:

public static String sendGetRequest(String reqURL, String decodeCharset) throws IOException {
		long responseLength = 0; // 响应长度
		String responseContent = null; // 响应内容
		HttpClient httpClient = new DefaultHttpClient(); // 创建默认的httpClient实例
		HttpGet httpGet = new 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值