Mongo Db中的更新

时间:2020-04-01 01:53:52

标签: mongodb spring-boot mongodb-query spring-data

我有一个用例,其中一个春季作业(@Scheduled fixedDelay)针对mongo集合运行并处理一些文档。在当前状态下,该作业 仅从一个jvm触发。但是,为了获得可用性,我们想从多个jvm运行该作业。我们不希望两个作业并行运行,但以防万一 一台jvm发生故障,另一台应执行。我们计划将所有文档更新为“处理中”状态,因此只有一个作业可以访问这些文档 我有一个问题是,如果两个作业同时被触发,将会发生什么情况?在这种情况下,两个作业都将选择相同的记录,但是我们如何识别获得写锁定的作业 并将文档更新为处理状态。

1 个答案:

答案 0 :(得分:0)

这是分布式事务的情况。如果您仍然遇到此问题-我推测您是否在Mongo中使用spring-data,则当数据更改时,Hibernate将能够使JVM上下文之一中的数据无效。然后,您将在该JVM中出错。