#java #spring-boot #httpclient #threadpool #connection-pooling
#java #весенняя загрузка #httpclient #threadpool #объединение в пул соединений
Вопрос:
Я пытаюсь установить максимальное открытое httpconnection в определенное время равным 10. Если поступает 11-й запрос, следует дождаться, пока одно из httpconnection освободится. Мой код приведен ниже. Я не уверен, как проверить, работает ли это так, как ожидалось. Может ли кто-нибудь это проверить?
private final ExecutorService executorService = Executors.newFixedThreadPool(10);
private final HttpClient httpClient = HttpClient.newBuilder()
.executor(executorService)
.build();
//BElow code is inside my method
List<CompletableFuture<String>> result = targets.stream()
.map("myjson"-> httpClient.sendAsync(
HttpRequest.newBuilder()
.POST(HttpRequest.BodyPublishers.ofString("myjson"))
.uri(URI.create("myURl"))
.setHeader("Authorization", "Basic =")
.build(),
HttpResponse.BodyHandlers.ofString())
.thenApply(response -> response.body()))
.collect(Collectors.toList());
for (CompletableFuture<String> future : result) {
System.out.println(future.get());
}