反应堆重试:reactor.retry.Retry vs. reactor.util.retry.Retry

问题描述

我第一次在反应堆中使用重试模式。

我对在反应堆中重试的管理感到完全困惑。混淆的主要来源是同一个包中现有的 2 个 Retry 类!

我想在发生特定异常时重试 Mono/Flux 进程,次数最多。

我的第一步是以这种方式创建一个 reactor.retry.Retry

reactor.retry.Retry retry = reactor.retry.Retry
        .anyOf(
                WebClientResponseException.BadRequest.class,WebClientResponseException.BadGateway.class)
        .retryMax(nRetries);

然后,我想用

参数化我的单声道
mymono.retrywhen(utilRetry);

按照 Interface Retry 中的文档,我必须使用方法 reactor.retry.Retry 转换 reactor.util.retry.Retry 中的 withThrowable 对象,但是没有示例(以及示例中的示例) doc 不起作用,因为对象不兼容)。

所以,我正在寻找类似的东西

utilRetry=retry.somemethod()

欢迎任何对新手的评论

更新:

我发现这个问题 reactor.retry.Retry does not provide methods for Mono.retryWhen(Retry retrySpec) #231 似乎存在一些迁移冲突,但没有提供规范的解决方

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)