[英]Couchbase java-client IllegalReferenceCountException
嘗試使用AsyncBucket
我在java-client-2.1.0
上收到此錯誤:
com.couchbase.client.deps.io.netty.util.IllegalReferenceCountException: refCnt: 0, decrement: 1
過了一會兒,我明白了。 Couchbase完全忽略了這種情況,因此庫沒有適當的反饋,而Netty內部人員也無濟於事。
原來,當您多次消費CB的物品時,您會得到該錯誤。 例如,
val getObs = asyncBucket.get("blah")
val emptyObs = getObs.isEmpty.doOnEach(...).subscribe()
val docObs = getObs.doOnEach(...).subscribe()
這是我想出的解決“找不到文檔”方案的唯一方法。
要解決此問題,請使用cache()
:
val getObs = asyncBucket.get("blah").cache()
緩存觀察者將使用Couchbase的項目,然后多個訂閱者可以安全地從緩存中使用。
如果使用rxscala
,則修復方法相同。
getObs.singleOption.foreach { ... }
沒有緩存將失敗。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.