【发布时间】:2016-01-18 12:47:37
【问题描述】:
我在步骤/阅读器中有一个操作,它可以抛出一些扩展 RuntimeException 的异常。我需要重新开始这一步,以防这个异常被抛出。我尝试过这样的事情:
@Bean
public SimpleRetryPolicy createSimpleRetryPolicy() {
Map<Class<? extends Throwable>, Boolean> map = new HashMap<>();
map.put(Exception.class, true);
return new SimpleRetryPolicy(3, map, true);
}
@Bean
public Step statisticsImportStep(StepBuilderFactory stepBuilderFactory, PageStatusFetcherReader reader, PageStatusFetcherProcessor processor, PageStatusFetcherWriter writer, TaskExecutor taskExecutor, SimpleRetryPolicy simpleRetryPolicy) {
return stepBuilderFactory.get("statisticsImportStep")
.<String, String>chunk(10)
.reader(reader)
.processor(processor)
.writer(writer)
.faultTolerant()
.retryPolicy(simpleRetryPolicy)
.taskExecutor(taskExecutor)
.throttleLimit(20)
.build();
}
但是这样我收到了:
org.springframework.batch.core.step.skip.NonSkippableReadException: 读取期间不可跳过的异常
知道如何重新开始这项工作吗?(我无法在阅读器中尝试{}catch() 异常) upd:它不想重启任何类型的异常。
【问题讨论】:
标签: java spring spring-batch