【问题标题】:Spring Batch read/write count does not match with the actual number of records executedSpring Batch 读/写计数与实际执行的记录数不匹配
【发布时间】:2014-10-28 13:37:42
【问题描述】:

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

【问题讨论】:

    标签: spring-batch


    【解决方案1】:

    虽然我们需要查看您的配置以及您用来给出准确答案的实际 ItemReaders,但从一般角度来看,这两个表有两个不同的用途,这就是数字不同的原因。

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

    BATCH_STEP_EXECUTION_CONTEXT 直接存储来自ItemReader 等的状态信息。因此,restart 的值可能与实际读取的数字不同(在考虑诸如跳过、提交边界等因素时)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-08
      • 2019-11-30
      • 2018-09-08
      • 1970-01-01
      • 2012-01-31
      • 2016-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多