Skip to main content
 首页 » 编程设计

Python & Couchbase 锁定/解锁机制

2025年05月04日48zdz8207

我正在使用 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 突变时自动释放。目前没有修改它并保持锁定的行为。