@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 的TimeLimiter 指南
- Reflectoring 的博客文章使用 Resilience4j 实现超时
还有其他地方我可以理解注释的作用吗?