Resilience4j-时间限制器cancelRunningFuture行为

时间:2020-04-19 17:57:59

标签: spring-boot resilience4j

我的课堂上有这些字段:

private ExecutorService executorService = Executors.newFixedThreadPool(10);

private TimeLimiterConfig timeLimiterConfig = TimeLimiterConfig.custom()
        .cancelRunningFuture(true)
        .timeoutDuration(Duration.ofSeconds(2))
        .build();

我正在这样调用我的外部服务:

        TimeLimiter.of(timeLimiterConfig).executeFutureSupplier(()-> CompletableFuture.supplyAsync(() -> demoGateway.service(param) ,executorService));

如果demoGateway.service花费的时间超过2秒,则Timelimiter将抛出TimeoutException,我的问题是

  • 此创建的异步线程将返回ThreadPool或将被杀死(我的executorService是否还有10个线程)?

  • 在这种情况下,cancelRunningFuture将强制完成创建的异步线程吗?

在这种情况下(cancelRunningFuture)使用true或false有什么区别?

0 个答案:

没有答案