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

时间:2015-11-04 15:13:29

标签: java spring io spring-batch

我的要求是在批量执行后将所有错误记录写入文件。应用程序将所有错误记录存储在Map中,最后需要将其写入文件。 批处理核心步骤完成后,我将此tasklet称为nextstep。 有没有更好的方法在tasklet中写入记录?而不是传统的FileStreamWriter? 可以在tasklet中使用FileItemWriter吗?

2 个答案:

答案 0 :(得分:0)

这实际上取决于您存储记录的方式。如果您将它们写入List,则可以使用基于块的步骤,其中ListItemReader和常规FlatFileItemWriter作为作者。

答案 1 :(得分:0)

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

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

  1. 要求您注册FlatFileItemWriter作为流,以便在块提交期间正确打开/关闭SB