问题描述
我正在查看resilience4j代码以了解它们如何实现装饰器,我可以看到供应商/消费者功能接口。我仍在尝试了解如何在编码时利用这些接口。我的问题是基于这种方法,
static <T> supplier<Future<T>> decorateFuture(Bulkhead bulkhead,supplier<Future<T>> supplier) {
return () -> {
if (!bulkhead.tryAcquirePermission()) {
final CompletableFuture<T> promise = new CompletableFuture<>();
promise.completeExceptionally(BulkheadFullException.createBulkheadFullException(bulkhead));
return promise;
}
try {
return new BulkheadFuture<>(bulkhead,supplier.get());
} catch (Throwable e) {
bulkhead.onComplete();
throw e;
}
};
有几个问题,
它是否因为定义为 lambda 而返回 supplier
这些装饰器是如何构造的,请谁能提供一个简单的例子,
supplier<String> decoratedsupplier = Bulkhead
.decoratesupplier(bulkhead,() -> "This can be any method which returns: 'Hello");
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)