Spring Batch与PageSize和commit-interval之间的区别

时间:2015-03-02 09:52:46

标签: spring-batch

Spring-Batch Reader'pageSize'属性与Writer'admit-interval'之间的关系/区别是什么。

我可能错了,但我在我的应用程序中看到一个模式,对于每个pageSize超出我看到一个提交。这是真的吗?

由于

2 个答案:

答案 0 :(得分:13)

commit-interval定义在一个块中处理的项目数。读取,处理该项目数,然后在单个事务的范围内写入(跳过/重试语义不能承受)。

分页page-size实现的ItemReader属性(例如JdbcPagingItemReader)定义了每次读取底层资源时获取的记录数。因此,在JDBC示例中,只需对数据库进行一次命中即可请求多少条记录。

虽然这两个属性之间没有直接关联,但通常认为它们匹配是一个好主意,但是它们可以独立提供两个旋钮来修改应用程序的性能。

关于您的直接问题,如果您将page-size设置为与commit-interval相同,那么是的,我希望每个页面都有一次提交。

答案 1 :(得分:3)

提交间隔确定将在块中处理多少项。

页面大小确定每次需要时将提取的项目数。

根据您设置的数字,行为可能是您描述的行为。它们用于优化。