【发布时间】:2015-10-15 10:49:11
【问题描述】:
我有一个使用 Spring Batch Input 阅读器 Writer 的简单程序。 该程序的目的是简单地读取一个 csv 文件。
我已将 commit-interval 设置为 5。csv 文件只有 5 条记录,但由于某种原因,尽管 commit-interval 设置为 5,但由于某种原因,Writer 被调用了 3 次。我原以为只会调用 writer曾经基于我的理解,项目阅读器和处理器将逐行读取每个项目,然后编写器将一次处理所有 5 个项目。我想我不清楚提交间隔的影响。有什么建议吗?
【问题讨论】:
-
我的问题的原因是我有一百万条记录,我可能必须使用 Java 集合读取并传递到下一步。现在,当我尝试从一个小文件中读取时,只有最后一个使用 StepExecution 将编号等于指定的 commit-linterval 的块传递到下一步。以前的记录没有通过。如何确保所有记录都通过。更改 commit-interval 有帮助吗?或者还有其他方法吗?
-
我正在为此使用 ExecutionContext 和 ExecutionContextPromotionListener。但只有等于提交间隔的最后一个块被设置并在下一步中读取。
-
请分享配置文件。我想知道您正在使用的
reader、writer和processor的类型。 -
当然。我们使用的阅读器是FlatFileItemReader。处理器是ItemProcessor,Writer是ItemWriter。这些是API提供的类。
-
请看看这个网站。它可能对你有帮助。 parameshk.blogspot.in/2013/11/…