超时等待来自池I / O的连接错误-org.springframework.web.client.ResourceAccessException

时间:2020-06-16 14:10:32

标签: spring-batch

使用具有以下配置的spring batch调用Itemprocessor内部的CompletableFuture内部的API时发生异常。 代码段是,我正在对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内部,我将使用CompletableFuture进行另外4个操作以执行特定用例,并将CompletableFuture.allOf(..)返回给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)

0 个答案:

没有答案
相关问题