Spring-Batch Reader'pageSize'属性与Writer'admit-interval'之间的关系/区别是什么。
我可能错了,但我在我的应用程序中看到一个模式,对于每个pageSize超出我看到一个提交。这是真的吗?
由于
答案 0 :(得分:13)
commit-interval
定义在一个块中处理的项目数。读取,处理该项目数,然后在单个事务的范围内写入(跳过/重试语义不能承受)。
分页page-size
实现的ItemReader
属性(例如JdbcPagingItemReader
)定义了每次读取底层资源时获取的记录数。因此,在JDBC示例中,只需对数据库进行一次命中即可请求多少条记录。
虽然这两个属性之间没有直接关联,但通常认为它们匹配是一个好主意,但是它们可以独立提供两个旋钮来修改应用程序的性能。
关于您的直接问题,如果您将page-size
设置为与commit-interval
相同,那么是的,我希望每个页面都有一次提交。
答案 1 :(得分:3)
提交间隔确定将在块中处理多少项。
页面大小确定每次需要时将提取的项目数。
根据您设置的数字,行为可能是您描述的行为。它们用于优化。