0

目前,resilience4j-all 库中的 DecorateConsumer.java 没有提供 Retry 的装饰方法(仅支持 Circuit Breaker、RateLimiter 和 BulkHead)。

Retry.java 类也没有提供这个选项

我有一个消费者函数 public void call(String key) ,它在内部执行一个带有键值的休息调用。

但是弹性 4j 文档提到“您可以通过重试来装饰任何 Callable、Supplier、Runnable、Consumer、CheckedRunnable、CheckedSupplier、CheckedConsumer 或 CompletionStage。”

我们如何在弹性 4j 中使用 Retry 来装饰消费者功能接口

4

1 回答 1

0

你可以做

String key = "key";
Runnable runnable = () -> helloWorldService.sayHelloWorldWithName(key);
Decorators
    .ofRunnable(runnable)
    .withRetry(Retry.ofDefaults("id"))
    .run();

要不就

Runnable runnable = () -> helloWorldService.sayHelloWorldWithName(key);
retry.executeRunnable(runnable);
于 2020-05-08T11:39:16.047 回答