我正在使用 couchbase==2.0.7 库运行 Couchbase 3.0。
有没有办法在执行更新插入后保持文档锁定?
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 获取锁,但是线程 1 未完成,在下一次插入时将引发错误。
请您参考如下方法:
不幸的是,Couchbase 锁会在 CAS 突变时自动释放。目前没有修改它并保持锁定的行为。
