在Spring批处理的Tasklet步骤中写入文件

问题描述:

我的要求是在批处理执行后将所有错误记录写入文件。应用程序将所有错误记录存储在Map中,最后它需要写入文件。 批量核心步骤完成后,我将这个tasklet作为下一步调用。 有没有更好的方法来写入tasklet中的记录?而不是传统的FileStreamWriter? 可能在tasklet中使用FileItemWriter?在Spring批处理的Tasklet步骤中写入文件

这真的取决于你如何存储记录。如果将它们写入List,则可以使用基于块的步骤,其中ListItemReader和常规的FlatFileItemWriter作为写入器。

它可能是在批处理过程中写入错误文件并删除nextstep中的文件,如果它是空的更好的方法?

我目前没有使用SB,但我认为您也可以使用FlatFileItemWriter作为错误侦听程序,并设置shouldDeleteIfEmpty属性让SB自动删除文件。
该解决方案的唯一的缺点是:

  1. 需要您注册FlatFileItemWriter如流,让SB开/块中正确地关闭提交