【发布时间】:2015-07-29 10:24:24
【问题描述】:
在 Spring Batch 中使用块处理(指定提交间隔)处理步骤级别时,有没有办法在 Writer 内部知道何时已读取和处理文件中的所有记录。我的想法是通过读取所有记录后,从文件读取到 ExecutionContext 的记录集合。
请帮忙。
【问题讨论】:
-
你想对所有数据都被读取和处理(但还没有写入?)的信息做什么?
标签: java spring-batch
在 Spring Batch 中使用块处理(指定提交间隔)处理步骤级别时,有没有办法在 Writer 内部知道何时已读取和处理文件中的所有记录。我的想法是通过读取所有记录后,从文件读取到 ExecutionContext 的记录集合。
请帮忙。
【问题讨论】:
标签: java spring-batch
我不知道这是否是预先构建的CompletionPolicy 之一,可以满足您的要求,但如果没有,您可以编写自定义CompletionPolicy,当作者返回null 时将块标记为已完成;这样您就可以保存从文件中读取的所有项目。
在那之后,你确定这正是你想要的吗?因为将所有项目存储在 ExecutionContext 中不是一个好习惯;此外,您将失去块处理、可重启性和所有其他 SB 功能...
【讨论】:
FlatFileItemReader、ItemProcessor 和 FlatFileItemWriter 的单个步骤来解决