Привет, я использую webClient из весеннего webflux. у меня есть код вроде:
@Configuration
class WebClientConfig(
@Value("\${url}")
private val url: String
) {
@Bean
@Primary
fun webClient(): WebClient {
return createWebClient(700)
}
@Bean("more_timeout")
fun webClientMoreTimeout(): WebClient {
return createWebClient(3000)
}
private fun createWebClient(timeout: Int): WebClient{
val httpClient = HttpClient.create()
.tcpConfiguration { client -> client.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, timeout) }
return WebClient.builder()
.baseUrl(url)
.clientConnector(ReactorClientHttpConnector(httpClient))
.build()
}
}
Эта конфигурация потому, что мне нужны звонки с другим таймаутом. Предположим, у меня есть одна служба A, которая очень важна для моего ответа, поэтому я хочу подождать ответа максимум 3 секунды, а также у меня есть другие службы B, C и т. Д., Которые не очень важны для моего ответа, я буду только ждать 700 мс для генерации ответа. Кто я могу архивировать это?
Предыдущая конфигурация не работает, потому что webClient является неизменяемым.