#java #http #apache-httpclient-4.x
#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:
Настоятельно рекомендуется повторное использование одного и того же экземпляра HttpAsyncClient
. HttpAsyncClient не станет «устаревшим». Закрыть нужно только HttpAsyncClient
после того, как больше не будет запросов для выполнения (например, в случае завершения работы приложения).