gpt4 book ai didi

java - Couchbase java-client IllegalReferenceCountException

转载 作者:行者123 更新时间:2023-11-30 08:08:33 32 4
gpt4 key购买 nike

我在尝试使用 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 { ... }

没有缓存就会失败。

关于java - Couchbase java-client IllegalReferenceCountException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30736173/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com