【发布时间】:2021-06-23 02:59:50
【问题描述】:
@TimeLimiter 注释到底是什么?
示例
@TimeLimiter(name = "abc123")
public <T> CompletableFuture<T> execute(Supplier<T> supplier) {
return CompletableFuture.supplyAsync(supplier);
}
可能等于:
public <T> CompletableFuture<T> execute(Supplier<T> supplier) {
TimeLimiter timeLimiter = timeLimiterRegistry.timeLimiter("abc123");
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(3); // This scheduler must somehow exist with the annotation as well right?
return timeLimiter.executeCompletionStage(
scheduler, () -> CompletableFuture.supplyAsync(supplier)).toCompletableFuture();
}
代码的非阻塞变体中所需的调度程序,是否以某种方式包含在注释中?
研究
我主要阅读:
- Resilience4J 的Guide on TimeLimiter
- Reflectoring 的博文Implementing Timeouts with Resilience4j
还有其他地方我可以理解注释的作用吗?
【问题讨论】:
标签: annotations resilience4j time-limiting