我正在使用 Spring Batch 读取表中的块数据,发送事件,并在事件发送时更改写入器中的布尔值。
示例:
我的阅读器(RepositoryItemReader)调用 JpaRepository 来检索状态未像这样发送的所有行
Page<Item> findbynotsent();
如果一切正常,进程发送通知并将发送的值设置为true
作者将 Item 保存在 bdd 中以将发送的值传递为 true
但是当读者执行第二个循环时,他错过了很多行,因为作者改变了状态条件。 因此,当读者第二次播放 sql 请求时,他会得到第二页。但实际上第二页是第一个请求的第三页,而 springBatch 错过了一页。我认为这是因为限制……抵消……
是否存在另一种解决方案来实现这个简单的情况?你还有其他我可以使用的工具吗?
感谢您的帮助
分页阅读器不能很好地应对项目处理器或写入器中搜索条件的更改。以下是一些相关帖子:
您要么不需要在同一步骤中更改搜索条件,要么使用基于光标的阅读器(在这些情况下应该可以正常工作)。