Spring WebFlux Web クライアントを使用して REST 呼び出しを行っています。3000
それに応じて、ミリ秒単位で接続タイムアウトを構成しました。
WebClient webClient = WebClient.builder()
.clientConnector(new ReactorClientHttpConnector(options -> options
.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 3000)))
.build();
return webClient.get()
.uri("http://localhost:8081/resource")
.retrieve()
.onStatus(HttpStatus::isError, clientResponse -> {
// Some logging..
return Mono.empty();
})
.bodyToMono(MyPojo.class);
このメソッドは、すべての/応答コードに対してonStatus
空を返しています。接続タイムアウトや、読み取り/書き込みタイムアウトについても同じことを行うにはどうすればよいですか。今のところ、によって処理されないをスローするだけですMono
400
500
io.netty.channel.ConnectTimeoutException
onStatus
@ExceptionHandler
これらの REST 呼び出しはより複雑なフローの一部であり、空Mono
の要素を介して無視する必要があるため、コントローラーには必要ありません。
に戻っspring-web
てRestTemplate
、接続タイムアウトも . になったことを覚えていますRestClientException
。したがってRestClientException
、すべての例外とタイムアウトをキャッチできます。これを行う方法はありWebClient
ますか?