gpt4 book ai didi

java - 如果出现某种类型的异常,请重新启动批处理作业/步骤

转载 作者:太空宇宙 更新时间:2023-11-04 13:01:59 25 4
gpt4 key购买 nike

我在步骤/读取器中进行了操作,它可以抛出一些扩展 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: Non-skippable exception during read

知道如何重新启动此作业吗?(我无法在阅读器中尝试 catch() 异常)upd:它不想重新启动任何类型的异常。

最佳答案

我认为您需要添加一个ExceptionHandler来重试托管Exception。似乎默认实现已经存在:SimpleRetryExceptionHandler .

这应该像 XML 一样工作:

<skippable-exception-classes>
<include class="xx.xx.xx.Exception"/>
</skippable-exception-classes>

您可以尝试使用以下命令添加它:exceptionHandler(ExceptionHandler exceptionHandler)

我找不到任何如何实际使用它的示例:(

关于java - 如果出现某种类型的异常,请重新启动批处理作业/步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34855192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com