org.springframework.web.client.ResourceAccessException: ошибка ввода-вывода: время ожидания ожидания соединения из пула - PullRequest
0 голосов
/ 24 апреля 2020

Получение исключения при вызове 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...