Этот вопрос связан с PoolingClientConnectionManager (HttpClient 4.2.5 API)PoolingClientConnectionManager как закрыть розетки
У меня есть максимум 5 удаленных соединений в пуле и список из более чем 20 URL, чтобы загрузить файлы. Я освобождаю соединение после загрузки файла. Но я не даю никакого значения тайм-аута. Что произойдет после загрузки файлов из 5 разных URL-адресов. Я думаю, что я собрал из документации, что 6-й файл не начнет загружаться до тех пор, пока клиент не обнаружит, что соединение было закрыто с его конца. Это так? Что я могу сделать, чтобы закрыть сокет, как только я скачал файл с URL-адреса. Обратите внимание, что все URL-адреса, с которых я загружаю файл, находятся на разных серверах.
Так что я уже это делаю. Но где-то в документах также говорится, что после выпуска соединений соединение вернется к менеджеру, но не закрывается. В моем сценарии после того, как я загрузил 5 файлов, было бы 5 соединений с менеджером, указывающими на 5 разных серверов. Но теперь, когда я хочу загрузить 6-й файл, в пуле не будет никаких бесплатных подключений для подключения к 6-му серверу, и мне придется подождать, пока клиент не завершит соединение (что в моем случае является таймаутом соединения = 0). Я считаю, что это правильно? и что мне делать, чтобы это не происходило. – Manav
Извините, я смущен, почему вы считаете, что «Освобождение соединения» и «Закрытие соединения» различны. Причина «Отпустите» соединение так, чтобы его можно было повторно использовать. Кстати, это клиент, который «освобождает» соединение –
, повторно используемое для связи с тем же сервером или каким-то другим сервером? Я имею в виду, что после освобождения соединения сокет закрывается или он остается в живых? – Manav