Mono.fromCallable(() -> sendRequestToServer(params))
.doOnSuccess(result -> handleResponse(result, grantMapEntry, deviceInfo))
.retryWhen(RetryBackoffSpec
.backoff(5, ofSeconds(10))
.doAfterRetry(retryInfo -> {
log.warn("retrying");
})
.scheduler(hbRetryScheduler)
.jitter(0.5);)
.subscribe();
上面的规范工作正常,但问题是有时服务器无法处理请求,并返回106响应代码,retryTime以秒为单位(秒后,请求应重试与回退和抖动).我如何使用RetryBackoffSpec中返回的retryTime?
1条答案
按热度按时间wkyowqbh1#
您可以根据
RetrySignal
中的条件(例如响应中的http头)创建自定义RetrySpec
。以下示例使用
Retry-After
标头定义自定义回退逻辑。然后将其用于
WebClient