使用Quartz调度程序并运行spring批处理。线程数为5,提交间隔为20 .. 如果批次要拾取100条记录,并且当它正在运行时,我碰巧停止批处理执行... BATCH_STEP_EXECUTION表中的读取计数和写入计数是'n'但是BATCH_STEP_EXECUTION_CONTEXT有记录计为'n'+/-,但不一样..这些表之间通常不匹配.. 还观察到有时处理和提交的记录数量更多,但这些表中的计数数量要少得多。 请任何人解释..
答案 0 :(得分:0)
虽然我们需要使用实际的ItemReader
来查看您的配置,但是从一般的角度来看,这两个表有两个不同的用途,这就是为什么数字各不相同。
BATCH_STEP_EXECUTION
一般存储该步骤的元数据。读取计数将是给定步骤执行期间读取的实际项目数。
BATCH_STEP_EXECUTION_CONTEXT
直接从ItemReader
等存储状态信息。因此,重新启动的值可能与实际读取的数量不同(当考虑跳过,提交边界等事物时)等等。)