Операции тайм-аута, которые вы можете настроить на клиентском соединителе, являются довольно низкими: они касаются времени ожидания сокета / соединения.Эту настройку нельзя выполнить на уровне запроса, поскольку соединения могут использоваться совместно и повторно использоваться в пуле соединений.
Этот вопрос касается тайм-аутов ответа, так как, кажется, вас волнует количество времени, необходимое для получения ответа,для каждого запроса.
В этом случае вы можете использовать оператор timeout
для каждого запроса:
Mono<UserData> result = this.webClient.get()
.uri("/user")
.accept(MediaType.APPLICATION_JSON)
.retrieve()
.bodyToMono(UserData.class)
.timeout(Duration.ofSeconds(10));
Оператор тайм-аута выбросит TimeoutException
втрубопровод;Вы можете использовать один из операторов onError*
, чтобы определить, что следует делать в этих случаях.Кроме того, вы можете напрямую использовать вариант timeout(Duration, Mono)
, который обеспечивает запасной вариант.