Python & Couchbase Lock/Unlock 机制

Python & Couchbase Lock/Unlock mechanism

我是 运行 Couchbase 3.0 和 couchbase==2.0.7 库。

有没有办法在执行更新插入后保持文档锁定?

rv = self.cb.lock("locked_key", ttl=5) # <-- document is locked
new_value = rv.value.upper()
cb.upsert("locked_key", new_value, rv.cas) # <-- document is unlocked

我的问题是我在一个锁定的文档上有多个更新插入,如果有两个线程同时开始执行代码,当线程 1 执行第一个更新插入时,文档被解锁并且线程 2 获取锁, 但 thread1 未完成,在下一次插入时将引发错误。

不幸的是,Couchbase 锁会在 CAS 突变时自动释放。目前没有修改它并保持锁定的行为。