spring 批处理总是在异常时立即重试,尽管未指定重试配置
spring batch its always gets retried immediately when exception, though retry configuration is not specified
我有以下卡盘步骤配置。其中一个处理器是 REST API POST 调用。所以如果有任何异常我不想重试。但即使在我删除重试配置后,它仍然会从失败项目的 reader 步骤立即重试一次。这里可能缺少什么?谢谢。
return stepBuilderFactory.get("chunkStep")
.<File, CoopReqDTO>chunk(1)
.reader(filesReader)
.processor(processor())
.faultTolerant()
//.retry(Exception.class)
//.retryLimit(1)
.skip(Exception.class).skipLimit(Integer.MAX_VALUE)
.listener(pdfCaptureSkipListener)
.writer(compositeItemWriter())
.build();
如果你想缓存处理结果,你可以使用 FaultTolerantStepBuilder#noRetry to exclude any exception and (its subclasses) from the retry. You might also check FaultTolerantStepBuilder#processorNonTransactional(这可能对你的情况有用,以避免 re-doing 一个 POST 请求)。
我有以下卡盘步骤配置。其中一个处理器是 REST API POST 调用。所以如果有任何异常我不想重试。但即使在我删除重试配置后,它仍然会从失败项目的 reader 步骤立即重试一次。这里可能缺少什么?谢谢。
return stepBuilderFactory.get("chunkStep")
.<File, CoopReqDTO>chunk(1)
.reader(filesReader)
.processor(processor())
.faultTolerant()
//.retry(Exception.class)
//.retryLimit(1)
.skip(Exception.class).skipLimit(Integer.MAX_VALUE)
.listener(pdfCaptureSkipListener)
.writer(compositeItemWriter())
.build();
如果你想缓存处理结果,你可以使用 FaultTolerantStepBuilder#noRetry to exclude any exception and (its subclasses) from the retry. You might also check FaultTolerantStepBuilder#processorNonTransactional(这可能对你的情况有用,以避免 re-doing 一个 POST 请求)。