Python& Couchbase锁定/解锁机制

时间:2016-02-09 09:36:49

标签: python multithreading python-2.7 locking couchbase

我使用couchbase == 2.0.7库运行Couchbase 3.0。

有没有办法在执行upsert后保持文档锁定?

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

我的问题是我在锁定的文档上有多个upsert,如果有两个线程同时开始执行代码,当thread1执行第一个upsert时,文档被解锁并且thread2获取锁定,但是thread1没有完成,在下次upsert时会出现错误。

1 个答案:

答案 0 :(得分:1)

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