ItemReader
每次作业运行时都从不断增长的现有表中读取。我正在寻找springbatch中的选项,以便在每次运行schedule作业时只查询新记录。
如果我读了50000条记录,下一个时间表应该从50001开始。
我的想法是将itemreader读取的最后一条记录的id(整个reader输出的最后一条,而不是每个块的最后一条)持久化到db中,并在后续的作业调度中使用。我将从主表返回按id排序的数据。
我怎么知道作者的最后一张唱片?任何想法。
ItemReader
每次作业运行时都从不断增长的现有表中读取。我正在寻找springbatch中的选项,以便在每次运行schedule作业时只查询新记录。
如果我读了50000条记录,下一个时间表应该从50001开始。
我的想法是将itemreader读取的最后一条记录的id(整个reader输出的最后一条,而不是每个块的最后一条)持久化到db中,并在后续的作业调度中使用。我将从主表返回按id排序的数据。
我怎么知道作者的最后一张唱片?任何想法。
1条答案
按热度按时间9avjhtql1#
我将通过传递记录的id范围(即。
fromId
以及toId
)运行批处理作业时需要作为作业参数处理的。然后在ItemReader
,您可以依赖此id范围返回要处理的数据。并以某种方式将已经处理过的最新id保存到db中(例如,使用
JobExecutionListener
作业完成时)。当触发下一个计划作业时,找出下一个未处理的id,然后用该下一个id作为参数启动另一个作业示例。