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 请求)。