项目读取器知道读取器处理的最后一条记录

nhn9ugyo  于 2021-07-15  发布在  Java
关注(0)|答案(1)|浏览(363)

ItemReader 每次作业运行时都从不断增长的现有表中读取。我正在寻找springbatch中的选项,以便在每次运行schedule作业时只查询新记录。
如果我读了50000条记录,下一个时间表应该从50001开始。
我的想法是将itemreader读取的最后一条记录的id(整个reader输出的最后一条,而不是每个块的最后一条)持久化到db中,并在后续的作业调度中使用。我将从主表返回按id排序的数据。
我怎么知道作者的最后一张唱片?任何想法。

9avjhtql

9avjhtql1#

我将通过传递记录的id范围(即。 fromId 以及 toId )运行批处理作业时需要作为作业参数处理的。然后在 ItemReader ,您可以依赖此id范围返回要处理的数据。
并以某种方式将已经处理过的最新id保存到db中(例如,使用 JobExecutionListener 作业完成时)。当触发下一个计划作业时,找出下一个未处理的id,然后用该下一个id作为参数启动另一个作业示例。

相关问题