在Spring批处理的Tasklet步骤中写入文件
问题描述:
我的要求是在批处理执行后将所有错误记录写入文件。应用程序将所有错误记录存储在Map中,最后它需要写入文件。 批量核心步骤完成后,我将这个tasklet作为下一步调用。 有没有更好的方法来写入tasklet中的记录?而不是传统的FileStreamWriter? 可能在tasklet中使用FileItemWriter?在Spring批处理的Tasklet步骤中写入文件
答
这真的取决于你如何存储记录。如果将它们写入List
,则可以使用基于块的步骤,其中ListItemReader
和常规的FlatFileItemWriter
作为写入器。
答
它可能是在批处理过程中写入错误文件并删除nextstep中的文件,如果它是空的更好的方法?
我目前没有使用SB,但我认为您也可以使用FlatFileItemWriter
作为错误侦听程序,并设置shouldDeleteIfEmpty
属性让SB自动删除文件。
该解决方案的唯一的缺点是:
- 需要您注册
FlatFileItemWriter
如流,让SB开/块中正确地关闭提交