Resilience4j - Timelimiter cancelRunningFuture поведение - PullRequest
0 голосов
/ 19 апреля 2020

В моем классе есть следующие поля:

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, мои вопросы:

  • Этот созданный поток asyn c вернется в ThreadPool или будет убит (Будет ли у моего executorService еще 10 потоков)?

  • В этом случае cancelRunningFuture принудительно завершит созданный асиновый поток c?

В чем разница между использованием значений true или false в этом случае ( cancelRunningFuture)

...