当尝试更新之前删除的 couchbase 文档时,更新调用失败并显示 CASResponse.EXISTS 代码而不是 CASResponse.NOT_FOUND。但是,在删除完成后立即获取先前删除的键的调用按预期返回 null:
def main(args: Array[String]){
val uris = List(URI.create("http://localhost:8091/pools"))
val client = new CouchbaseClient(uris, "test", "password")
client.add("asdf", "qwer").get
client.delete("asdf").get
val result = client.asyncGets("asdf").get
assert(result == null)
val response = client.asyncCAS("asdf", 1, "bar").get
response match {
case CASResponse.NOT_FOUND => println("Document Not Found")
case CASResponse.EXISTS => println("Document exists")
}
}
在更新调用解决问题之前添加 Thread.sleep(1000) ,所以我的问题是这是 Couchbase 的预期行为吗?
Couchbase 版本是 2.2.0 企业版(build-821),在 Scala 2.10.2 中使用 Java 客户端版本 1.2.1。
谢谢