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

时间:2014-06-25 11:12:26

标签: java http apache-httpclient-4.x

我正在尝试使用HTTPAsyncCLient进行激活,并忘记在我的应用中。

http://hc.apache.org/httpcomponents-asyncclient-4.0.x/

但是对于真正的火灾和忘记,我需要避免关闭客户端,因为我不想等待响应,如果我关闭,可能直到那时才建立连接。

       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 个答案:

答案 0 :(得分:4)

强烈建议重复使用HttpAsyncClient的同一个实例。 HttpAsyncClient不会“陈旧”。只有在没有更多请求被执行时才会关闭HttpAsyncClient(例如,在应用程序关闭的情况下)。