我对CloseableHttpClient管理的连接有问题。Spring服务管理纽约连接:
@Service
public class MyService {
...
private CloseableHttpClient closeableHttpClient;
public String setPayment() {
...
try {
HttpPost httpPost = new HttpPost(url);
httpPost.setHeader(ACCEPT, APP_JSON);
httpPost.setHeader(CONTENT_TYPE, APP_JSON);
StringEntity entity = new StringEntity(request, CHARSET);
httpPost.setEntity(entity);
CloseableHttpResponse response = closeableHttpClient.execute(httpPost);
logger.info("Execution");
} catch (IOException e) {
logger.error("Error");
}
}
}
当执行不成功时,我的setPayment方法最多调用3次。有时在第一次执行后,我的方法挂起而没有响应。欢迎任何建议。
我建议你做以下事情:
1) 在构造函数中设置超时:
public MyService() {
int timeout = 180;
RequestConfig config = RequestConfig.custom()
.setConnectTimeout(timeout * 1000)
.setConnectionRequestTimeout(timeout * 1000)
.setSocketTimeout(timeout * 1000).build();
closeableHttpClient = HttpClientBuilder.create().setDefaultRequestConfig(config).build();
}
2) 使用try with resources管理CloseableHttpResponse
public String setPayment() {
...
HttpPost httpPost = new HttpPost(url);
httpPost.setHeader(ACCEPT, APP_JSON);
httpPost.setHeader(CONTENT_TYPE, APP_JSON);
StringEntity entity = new StringEntity(request, CHARSET);
httpPost.setEntity(entity);
try (CloseableHttpResponse response = closeableHttpClient.execute(httpPost)){
logger.info("Execution");
} catch (IOException e) {
logger.error("Error");
}
}
有什么让我怀念的吗?如果我必须手动关闭连接,是不是至少可以从Javers那里收到一个不再需要连接的通知?
当我使用CloseableHttpClient和do Execute方法时,它在第一次正常工作,但之后从未成功。它将引发表示“连接池关闭”的异常 有人说是因为我还没有关闭客户端有人说是httpClient 4.3中的bug 我的项目不存在上述问题,但仍然无法正常工作
我正在使用JMeter测试Spring Boot REST API服务器。 JMeter选项包括 测试一直进行到1-20000个请求, 但请看下面的图片。 平均响应时间在10ms以下,但有时超过20~50ms。 当响应时间增加时,将出现连接超时。 即使我将连接超时设置为超过10分钟。 为什么会出现这个错误?我找不到..
问题内容: 我知道在这里和互联网上已经创建了有关该主题的许多主题。但是,我真的无法就两个语句之间的区别得出最终的结论!我的意思是,尝试并尝试可以通过查询获得所需的所有结果,但是我真的无法完全控制刀具! 我正在考虑自己是一个非常优秀的程序员和一个非常出色的SQL-ista,对此我感到有些as愧… 这是一个例子: 我有一个包含网站页面的表格(“ web_page”) 具有类别(“类别”)的表格。 一个
我面临的问题是: < li >当我加载页面时,服务器的控制台中会显示套接字(我可以获取远程地址和远程端口) < li >无论我做什么,客户端中的连接总是挂起。我尝试了Chrome、Brave、Mozilla和Safari,但似乎没有一个能用。 我错过了什么?我试图在连接准备好之前不发送消息,但我从未在我的PC中获得过该状态。即使我在没有事件的情况下建立onopen属性,客户端中的警报也不会弹出。
问题内容: 服务器重启后,docker看起来仍然活跃,但是所有命令(例如Ctrl + C)都将永远挂起。有什么事吗 问题答案: 原来实例的正常运行时间超过一年,安装了许多应用程序版本,文件夹中包含数百个显然是旧的废弃容器的项目。 我看到了在交互运行docker进行调试的命令的同时永久读取所有数据的过程。 我删除并重新安装了docker和容器在我的盒子上,问题已解决。 感觉就像我需要一个脚本,该脚本