我的项目使用spring批处理,我的要求是将错误记录写入文件中。我使用了Spring批处理容错和跳过策略,就像任何异常都可以跳过一样。我的问题是我只有1个记录在文件中,它是失败的,所以我希望只有1个记录被写入错误文件,但我得到2(相同)记录在错误文件。当我谷歌它是已知的,当你配置容错在 Spring 批处理时,错误发生时,它会重试错误记录一次。如何停止此行为并在错误文件中只写入1条记录。
例如:Spring批次的步骤配置(以下只是原始代码)
public Step mainstep()
{
stepbuilder.get("step").<Employee,Employee>chunk(2)
.reader()
.processor()
.writer()
.faulttolerant()
.skippolicy(new AlwaysskipItemskippolicy())
.build;
}
我写的错误文件尝试捕捉块在读者类.使用我写的文件输出流。我只有1个记录在文件中处理,但当我看到错误文件时,我得到了相同的记录写两次。
1条答案
按热度按时间9vw9lbht1#
您似乎在
SkipListener
以外的组件中写入了无效记录。如果您使用SkipListener
将无效记录写入文件,则不应发生您所描述的行为。