是否可以在jdbccursoritemreader中的数据库中更新

我使用Spring批处理JDBCCursorItemReader来读取表中的数据集 . 一旦数据被读取,spring批处理将处理块(读取器,处理器,写入器)中的每一行 . 现在我想更新/删除我的读者提取的那些记录,以避免由另一个相同作业的实例进行重新处理 . 有人可以告诉我怎样才能在读者中做到这一点?

谢谢

回答(1)

2 years ago

就像已经指出的那样,这可能是一个 bad design 的想法 . 但是,如果您确定这是您想要做的,

创造一个两步的工作,
步骤a,提交间隔为1
阅读记录
使用当前作业执行ID写入更新的记录
步骤b
读取作业执行ID为当前作业执行ID的记录
根据需要处理和更新

笔记

  • 由于评论中所述的原因,我不推荐这种方法

  • 提交间隔为1将 kill you performance wise 所以如果使用此方法应该仅适用于低容量作业 .