【发布时间】:2020-09-20 15:27:03
【问题描述】:
我不知道如何用 Resilience4j 包装同步方法以使其返回 CompletableFuture,尽管这似乎是 Resilience4j target 区域的一部分。 特别是因为我要包装的同步方法可以抛出异常。 我想要的伪代码:
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 ,它不会阻塞并且不关心任何这些。
真正困难的部分似乎是让它运行一个带有参数的方法,抛出一个异常!
【问题讨论】:
标签: java resilience4j