private CompletionStage<org.asynchttpclient.Response> executeWithRetries(Request request) {
RetryConfig retryConfig = RetryConfig.<org.asynchttpclient.Response>custom()
.maxAttempts(5)
.intervalFunction(IntervalFunction
.ofExponentialBackoff(TimeUnit.SECONDS.toMillis(2), 1.2))
.build();
Retry retry = Retry.of("proxy-retry" , retryConfig);
Supplier<CompletionStage<org.asynchttpclient.Response>> retryableSupplier = Retry.decorateCompletionStage(
retry , Executors.newScheduledThreadPool(10), () -> executeCall(request));
return retryableSupplier.get();
}
我正在使用这种方法,希望 executeCall 在引发异常时至少重试 3 次。executeCall(request) 方法返回一个 CompletionStage。
当我尝试对这段代码进行单元测试时,executeCall(request) 方法的调用次数只有一次(我在这个方法中抛出了一个异常)。
如何确保它至少重试 5 次(这是默认值)