1
我在步驟/讀取器中有可能拋出一些擴展了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:它不想重新啓動任何類型的異常。