Sprint批量容错问题

问题描述 投票:0回答:1

我的项目使用Spring Batch,我的要求是将错误记录写入文件中。 我使用了 Spring Batch 容错和跳过策略,就像任何异常都可以跳过一样。我的问题是我的文件中只有 1 条记录,但它失败了,所以我期望只有 1 条记录写入错误文件中,但我在错误文件中得到 2 条(相同)记录。当我用谷歌搜索时,知道当您在 Spring Batch 中配置容错时,当发生错误时,它将再次重试错误记录。如何停止此行为并在错误文件中仅写入 1 条记录。

例如:Spring Batch的步骤配置(下面只是原始代码)

    public Step mainstep()
    {
     stepbuilder.get("step").<Employee,Employee>chunk(2)
.reader()
.processor()
.writer()
.faulttolerant()
.skippolicy(new AlwaysskipItemskippolicy())
.build;
    }

我正在阅读器类中编写错误文件 try catch 块。使用我正在编写的文件输出流。我在文件中只有 1 条记录要处理,但是当我看到错误文件时,我得到相同的记录写入两次。

java spring spring-boot microservices spring-batch
1个回答
0
投票

您似乎在

SkipListener
以外的组件中写入了无效记录。如果您使用
SkipListener
将无效记录写入文件,则不应发生您所描述的行为。

© www.soinside.com 2019 - 2024. All rights reserved.