Получение исключения при вызове API внутри CompletableFuture из Itemprocessor с использованием пружинного пакета с приведенными ниже конфигурациями. Фрагмент состоит в том, что я использую пакетный шаг с ItemReader, ItemProcessor и ItemWriter,
@Bean
public Step batchStep() {
return stepBuilderFactory.get("batchStep").<String, ProcessorData>chunk(10)
.reader(reader()).processor(processor()).writer(writer())
.listener(batchStepListener())
.taskExecutor(taskExecutor())
.build();
}
@Bean
public TaskExecutor taskExecutor() {
SimpleAsyncTaskExecutor taskExecutor = new SimpleAsyncTaskExecutor();
taskExecutor.setConcurrencyLimit(50);
return taskExecutor;
}
Внутри ItemProcessor я выполняю еще 4 операции, используя CompletableFuture для выполнения конкретных c сценариев использования и возвращая CompletableFuture. все (..) в ItemWriter, в котором я получаю отдельные статусы и фиксирую в БД. Ниже приведен фрагмент ItemProcessor,
@Override
public ProcessorData process(String tenant) {
CompletableFuture<String> operationA = operation.fetchA(tenant);
CompletableFuture<String> operationB = operation.fetchB(tenant);
CompletableFuture<String> operationC = operation.fetchC(tenant);
CompletableFuture<String> operationD = operation.fetchD(tenant);
CompletableFuture<Void> combinedFuture = CompletableFuture.allOf(operationA, operationB, operationC,
operationD);
return new ProcessorData(operationA, operationB, operationC, operationD, idmeventsBackup,
combinedFuture);
}
Исключение составляет следующее:
org.springframework.web.client.ResourceAccessException: I/O error on DELETE request for <URL>: Timeout waiting for connection from pool; nested exception is org.apache.http.conn.ConnectionPoolTimeoutException: Timeout waiting for connection from pool
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:744)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:670)
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:579)