Как установить тайм-аут соединения и тайм-аут сокета с помощью feign http-клиента?

#spring-boot #httpclient #feign #openfeign

#весенняя загрузка #httpclient #симулировать #openfeign

Вопрос:

   @Bean
    public ApacheHttpClient client() {
        RequestConfig config = RequestConfig.custom().setConnectTimeout(30)
                .setSocketTimeout(30).build();

        CloseableHttpClient httpClientObject = HttpClientBuilder.create()
                .setDefaultRequestConfig(config)
                .build();
        return new ApacheHttpClient(httpClientObject);
    }


@Autowired
    public HTTPRequestClient(Decoder decoder, Encoder encoder, ApacheHttpClient client) {
        this.client = client;

        setHttpRequestAdaptor(Feign.builder()
                .client(client)
                .encoder(encoder)
                .decoder(decoder)
                .logLevel(feign.Logger.Level.FULL)
                .target(Target.EmptyTarget.create(HTTPRequestAdaptor.class)));

    }
 

Тайм-аут соединения и тайм-аут сокета не работают. Требуется справка, какие свойства работают с feign http client? Я использовал

 feign.httpclient.enabled=true
feign.httpclient.connection-timeout=2
 

но это не сработало.

Ответ №1:

Вы можете добавить a .options(new Request.Options(30, 30)) в конструктор feign

Если это не удается, возможно, добавьте весь класс в вопрос. Часть кода this.client = client выглядит немного странно.