Spring 批次 - 项目 reader 以了解 reader 处理的最后一条记录

Spring batch - Item reader to know last record processed by reader

每次作业运行时,

ItemReader 都会从不断增长的现有 table 中读取数据。我正在寻找 Spring 批处理中的选项,以便在每次计划作业运行时仅查询新记录。

如果我读取了 50000 条记录,那么下一个计划应该从 50001 开始。

我的想法是将 ItemReader 读取的最后一条记录的 ID(整个 reader 输出的最后一条,而不是每个块的最后一条)保存在数据库中,并在后续的作业计划中使用。我将 return 数据从主 table.

按 id 排序

如何知道writer中的最后一条记录?任何想法。

当运行一个批处理作业。那么在ItemReader中就可以依靠这个ID范围来对return数据进行处理了。

并以某种方式将已处理的最新 ID 保存到数据库(例如,在作业完成时使用 JobExecutionListener)。当下一个调度作业触发时,找出下一个没有处理的ID,然后以这个下一个ID为参数启动另一个作业实例。