使用HttpAsyncClients:保持连接长时间活动

3
我正在尝试在我的应用程序中使用HTTPAsyncClient进行“fire and forget”(即无需等待响应)。但是,为了实现真正的“fire and forget”,我需要避免关闭客户端,因为如果我关闭客户端,连接可能还没有建立。您可以参考这个网址:http://hc.apache.org/httpcomponents-asyncclient-4.0.x/。请注意,本文中的HTML标签已保留。
       CloseableHttpAsyncClient httpclient = HttpAsyncClients.createDefault();
       httpclient.start();
       HttpGet request = new HttpGet(url);
       Future<HttpResponse> future = httpclient.execute(request, null);
       HttpResponse resp = future.get();
       httpclient.close();

有一种想法是我不关闭httpclient,而是在多个URL上继续使用它。 因此,我将在服务器启动时生成一个客户端,并在所有请求中继续使用相同的客户端。

这样做的好处是不需要关闭,因为只有在服务器停止时才会释放。 我的问题是,这样做会有问题吗?客户端会在一段时间后变得过时吗?

1个回答

6

建议重复使用同一实例的HttpAsyncClient。HttpAsyncClient不会变得“陈旧”。只需要在没有更多请求需要执行时关闭HttpAsyncClient(例如,在应用程序关闭时)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接