【发布时间】:2018-11-26 22:34:31
【问题描述】:
我在表中总共有 8 条记录,其中 6 条在 spring 批处理调用读取时符合 jpareader 的条件。现在我将页面大小和块大小设置为 1 进行测试。期望当作业运行时,它应该进行 6 次读取调用,然后它应该一个一个地处理它们并一个一个地写入它们。但实际上发生的情况是它只是调用 read 4 次(从日志中我可以看到像这样读取页面 0...1)并处理 4 ,其中一个被过滤掉,因为不符合写入条件,然后它只更新 3 条记录和作业标记为已成功完成。
就像这个作业需要运行 3 次才能处理所有记录。我们还不清楚。试图理解块处理,但我认为块只是聚合结果以进行写入调用..之后我希望读取和处理应该继续。
通过这个测试,我们对于为生产设置块大小设置什么感到困惑,如果我们设置为较大的数字,它将需要更多的内存(堆)。
【问题讨论】:
-
页面大小是什么意思?你能发布你的配置的相关部分吗?
标签: spring-batch