Взаимозависимые вызовы веб-клиента Spring 5 webflux не получают тайм-аут

У меня есть два взаимозависимых вызова веб-клиента к разным 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();

Ниже приведены два последующих вызова, где, когда второй вызов является отложенным ответом, исключение времени ожидания чтения не генерируется.

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();
                });

person Madhu Kundala    schedule 25.06.2019    source источник
comment
Вы уверены, что это проблема с тайм-аутом чтения, а не с тайм-аутом соединения? stackoverflow.com/questions/3069382/ попробуйте настроить тайм-аут соединения. docs.spring.io/spring/docs/current/spring-framework-reference/   -  person Toerktumlare    schedule 25.06.2019
comment
да, я добавил, но все равно, мой единственный вопрос, независимо от количества последующих вызовов, поведение тайм-аута должно работать. но в моем случае для второго последующего вызова он не работает. TcpClient tcpClient = TcpClient.create () .option (ChannelOption.CONNECT_TIMEOUT_MILLIS, connectTimeoutMills) .option (ChannelOption.SO_TIMEOUT, connectTimeoutMills) .doOnConnected (соединение - ›connection.addHandlerLast (новое   -  person Madhu Kundala    schedule 25.06.2019