我正在使用couchbase==2.0.7库运行CouchBase3.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
我的问题是,锁定的文档上有多个插入,如果有两个线程同时开始执行代码,则当thread1执行第一个重新插入时,文档被解锁,thread2获取锁,但是thread1尚未完成,下一个thread1将引发一个错误。
发布于 2016-02-09 17:02:40
不幸的是,Couchbase锁在CAS突变时自动释放。目前没有修改它并保持其锁定的行为。
https://stackoverflow.com/questions/35288424
复制相似问题