Web*_*ern 5 azure azure-cosmosdb
基本上我想知道只有一方会更改该文档。我想避免这样的情况:一个辅助角色或不同辅助角色的 2 个不同实例将读取文档的相同状态,然后每个实例将编写自己的修改(可能不同)。顺序写入可能很容易一个接一个地顺利进行,但这不是我想要的。
如果由于某种原因未发生写入,则此写入锁应在一段时间后自动过期。
我听到一些传言说这是可能的,但我在文档中找不到这一点。
AFAIK,至少在撰写此答案时,Cosmos DB 不支持您正在寻找的内容(获取写锁)。今天支持的是Optimistic Concurrency using ETags适合顺序写入的内容,但这不是您想要的。
不过,只要大声思考,您就可以利用LeaseBlob 存储中提供的功能,并将其与 Cosmos DB 写入操作结合使用。
本质上,您的工作进程将尝试在特定持续时间(15-60 秒)内获取 Blob 的租约。只有一名工人能够获得租约。该工作线程在获取锁期间将有机会更新 Cosmos DB 中的文档。其他工作进程将必须等待,直到租约到期或第一个工作人员明确破坏租约。
这有点类似于Leader Election Pattern此处描述的: https: //learn.microsoft.com/en-us/azure/architecture/patterns/leader-election。
| 归档时间: |
|
| 查看次数: |
4271 次 |
| 最近记录: |