gpt4 book ai didi

couchbase - RxJava : retryWhen with retry limit

转载 作者:行者123 更新时间:2023-12-04 03:15:29 25 4
gpt4 key购买 nike

我是ReactiveX和响应式(Reactive)编程的新手。我需要为Couchbase CAS操作实现重试机制,但是Couchbase网站上的示例显示了retryWhen,它似乎可以无限期地重试。我需要有一个重试限制和重试计数。

简单的retry()可以工作,因为它接受retryLimit,但是我不希望它对每个异常都重试,而仅对CASMismatchException进行重试。

有任何想法吗?我正在使用RxJava库。

最佳答案

除了Simon Basle所说的以外,这是带有线性补偿的快速版本:

.retryWhen(notification ->
notification
.zipWith(Observable.range(1, 5), Tuple::create)
.flatMap(att ->
att.value2() == 3 ? Observable.error(att.value1()) : Observable.timer(att.value2(), TimeUnit.SECONDS)
)
)

请注意,这里的“att”是一个由可抛出和重试次数组成的元组,因此您可以非常具体地基于这两个参数实现返回逻辑。

如果您想学习更多,可以浏览我当前正在写的有弹性的文档: https://gist.github.com/daschl/db9fcc9d2b932115b679#retry-with-delay

关于couchbase - RxJava : retryWhen with retry limit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28040599/

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