Обрабатывать более двух запросов одновременно с HttpClient - PullRequest
0 голосов
/ 19 февраля 2019

Всякий раз, когда я выполняю следующие вызовы в одном методе getmapping в моем restcontroller, выполненном при загрузке Spring, он никогда не выполняется.Это прекрасно работает, когда я закомментирую один из трех.Неважно, какая комбинация, все они работают, но максимум с двумя.

        HttpGet httpget1 = new HttpGet(url+"api/now/table/incident?assignment_group=FS_logistic&incident_state=1");
        httpget1.setHeader("Accept", "application/json");
        CloseableHttpResponse response1 = httpclient.execute(httpget1);

        HttpGet httpget2 = new HttpGet(url+"api/now/table/incident?assignment_group=FS_logistic&incident_state=2");
        httpget2.setHeader("Accept", "application/json");
        CloseableHttpResponse response2 = httpclient.execute(httpget2);


        HttpGet httpget3 = new HttpGet(url+"api/now/table/incident?assignment_group=FS_logistic&incident_state=3");
        httpget3.setHeader("Accept", "application/json");
        CloseableHttpResponse response3 = httpclient.execute(httpget3);

1 Ответ

0 голосов
/ 28 марта 2019

В пуле соединений для HttpClient Apache по умолчанию могут быть открыты только два соединения одновременно.

Чтобы иметь возможность выполнять больше запросов, необходимо закрыть объекты ответа, чтобы освободить соединение сснова пул.

Более подробную информацию можно найти здесь: http://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html

...