У меня есть два взаимозависимых вызова веб-клиента к различным API-интерфейсам, когда первый ответ на вызов веб-клиента задерживается, затем наступает ожидание истечения времени ожидания.но всякий раз, когда первый вызов является успешным, а второй ответ на вызов задерживается, он ожидает ответа бесконечно.
Я пытался создать отдельные экземпляры веб-клиента для каждого вызова.проблема остается.
HttpClient httpClient = HttpClient.create()
.tcpConfiguration(client ->
client.doOnConnected(conn -> conn
.addHandlerLast(new ReadTimeoutHandler(10))
.addHandlerLast(new WriteTimeoutHandler(10))));
return WebClient.builder().baseUrl(url).clientConnector(new ReactorClientHttpConnector(httpClient))
.exchangeStrategies(ExchangeStrategies.withDefaults())
.defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_UTF8_VALUE)
.filter(ExchangeFilterFunctions
.basicAuthentication(", "))
.build();
Ниже приведены два последующих вызова, где, когда второй вызов является отложенным ответом, исключение readtimeout не генерируется
request = request.flatMap(req ->
tempService.getId(loggedInUser, token)
.map(response -> {
req.setRetrieveClientIdentifier(response.getId());
return seRequest;
}))
.zipWhen(request -> tempService.getIdFor(request.getIdentifier(), accountToken)).map(tuple -> {
tuple.getT1().setID(tuple.getT2().getId());
return tuple.getT1();
});