春季批处理总是在例外时立即重试的,尽管未指定重试配置
我有以下Chuck步骤配置。处理器之一是REST API帖子通话。因此,如果有任何例外,我不想重试。但是,即使我删除了重试配置,它仍然会立即从读取器步骤中进行一次重试。这里可能缺少什么?谢谢。
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();
I have the below chuck step configuration. One of the processor is REST API POST call. so I dont want to retry if there is any exception. But even after I remove the retry configuration, it still retries immediately once from the reader step for the failed item. What could be missing here? Thank you.
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();
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用 fulttolerantstepbuilder#noretry 将任何例外和(其子类)排除在重试中。您还可以检查 FARDTOLERANTSTEPBUILDER#processOrnOnonTransActional 如果您想缓存处理结果(对于您的情况,这可能很有用,以避免重新进行POST请求)。
You can use FaultTolerantStepBuilder#noRetry to exclude any exception and (its subclasses) from the retry. You might also check FaultTolerantStepBuilder#processorNonTransactional if you want to cache processing results (this might be useful in your case to avoid re-doing a POST request).