作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不知道如何使用 Resilience4j 包装同步方法,以便它返回 CompletableFuture,尽管这似乎是 Resilience4j 的目标区域的一部分。特别是因为我想要包装的同步方法可能会抛出异常。我想要的伪代码:
boolean void syncMethod(Parameter param) throws Exception {
// May throw Exception due to connection/authorization problems.
}
CompletableFuture<Boolean> asyncResilience4jWrapper() {
CompletableFuture<Boolean> result =
...
Resilience4j magic around "syncMethod(param)".
Trying 4 calls, interval between calls of 100 ms.
...;
return result;
}
Resilience4j 应该尝试调用该方法 4 次,直到放弃,调用之间的间隔为 100 毫秒,然后完成异步调用。asyncResilience4jWrapper 调用者应该只返回一个 CompletableFuture,它不会阻塞并且不关心任何这些。
真正困难的部分似乎是让它运行带有参数的方法,并抛出异常!
最佳答案
就这么做
CompletableFuture<Boolean> asyncResilience4jWrapper(Parameter param) {
return CompletableFuture<Boolean> future = Decorators.ofCallable(() -> syncMethod(param))
.withThreadPoolBulkhead(threadPoolBulkhead)
.withTimeLimiter(timeLimiter, scheduledExecutorService)
.withCircuitBreaker(circuitBreaker)
.withRetry(retry)
.withFallback(asList(TimeoutException.class, CallNotPermittedException.class, BulkheadFullException.class),
throwable -> "Hello from Recovery")
.get().toCompletableFuture();
}
关于java - Resilience4j 返回一个带有参数的尝试过的方法的 CompletableFuture,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62147297/
我在 NodeJS 中的多台计算机上的服务器端服务中使用 Resilient。 弹性客户端调用的 API 之一受到速率限制。受到速率限制的请求会在响应中收到特定的 header /值,因此很容易判断何
我是一名优秀的程序员,十分优秀!