【问题标题】:Resilience4j new instance of Retry or retrieve from RetryRegistry?Resilience4j 新的 Retry 实例或从 RetryRegistry 检索?
【发布时间】:2020-09-25 14:12:03
【问题描述】:

当使用 Retry 保护方法时,我应该每次都创建一个新实例还是重用 RetryRegistry 中的同一个实例?

我应该使用哪一个?

一)

for(int i: mylist){
Retry retry = Retry.ofDefaults("backendName");
Mono.fromCallable(backendService::doSomething).transformDeferred(RetryOperator.of(retry))
}

B)

RetryRegistry retryRegistry = RetryRegistry.ofDefaults();
for(int i: mylist){
Retry retry = registry.retry("backendName");
Mono.fromCallable(backendService::doSomething).transformDeferred(RetryOperator.of(retry))
}

Retry 是否应该始终是一个新实例来跟踪状态和尝试次数,或者当我们调用它时,幕后的注册表是否返回一个新实例?

【问题讨论】:

    标签: resilience4j


    【解决方案1】:

    您必须使用 b)。 您不得为每个调用创建一个新的 Retry 实例。 Retry 实例在内部为每个订阅创建一个新的 Retry 上下文。 您甚至应该只在构造函数中进行一次查找。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-19
      • 1970-01-01
      • 2021-02-07
      • 2020-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多