java - 如何处理对同一个 MongoDB 文档的并行更新?
问题描述
使用 MongoDB CrudRepository 的 Spring Boot 应用程序。
我有多个线程并行更新同一个文档。每个线程将按 ID 加载文档,进行更改并尝试保存它。
为了克服可以覆盖第一个线程所做更改的“最后胜利”行为,我实现了一个简单的版本控制机制,其中线程只能在尝试保存最新版本时保存其更改,否则会引发异常。
这解决了多次写入可能导致的数据不一致,但我正在失去工作。尝试保存具有过时版本的文档的线程没有重试机制。
这个问题有什么通用的解决方案吗?我不确定我需要采取哪种方法来处理这个问题。
解决方案
推荐阅读
- reactjs - 只有一些道具被加载到状态
- database - 如何对 ONE to MANY 关系进行唯一约束?
- javascript - javascript 如何在内部表示大于 Number.MAX_SAFE_INTEGER 的整数?
- javascript - 如何计算多个数组的总和?
- android - 如何从动态 EditText 中获取值并将值存储在整数数组中?
- c# - 在 PC、Iphone 和 Ipad 上使用 selenium 测试网页
- javascript - 根据 React 中的键更新状态
- regex - 如何将数组作为 csv 列放入 shell?
- android - 从最近的应用程序列表中隐藏第三方应用程序
- java - 如何在我的代码中使用共享首选项保存数据?