Spring Batch读/写计数与实际执行的记录数不匹配

时间:2014-10-28 13:37:43

标签: spring-batch

使用Quartz调度程序并运行spring批处理。线程数为5,提交间隔为20 .. 如果批次要拾取100条记录,并且当它正在运行时,我碰巧停止批处理执行... BATCH_STEP_EXECUTION表中的读取计数和写入计数是'n'但是BATCH_STEP_EXECUTION_CONTEXT有记录计为'n'+/-,但不一样..这些表之间通常不匹配.. 还观察到有时处理和提交的记录数量更多,但这些表中的计数数量要少得多。 请任何人解释..

1 个答案:

答案 0 :(得分:0)

虽然我们需要使用实际的ItemReader来查看您的配置,但是从一般的角度来看,这两个表有两个不同的用途,这就是为什么数字各不相同。

BATCH_STEP_EXECUTION一般存储该步骤的元数据。读取计数将是给定步骤执行期间读取的实际项目数。

BATCH_STEP_EXECUTION_CONTEXT直接从ItemReader等存储状态信息。因此,重新启动的值可能与实际读取的数量不同(当考虑跳过,提交边界等事物时)等等。)