#java
#java
Вопрос:
Я использую Feign в нашем приложении и настраиваю readTimeOut = 30000
, но есть некоторые методы, которые будут вызывать другое приложение для получения большого количества данных, поэтому оно потратит больше времени, как я могу настроить readTimeOut
для этих методов?
Ответ №1:
Вы проверили эту страницу?:
https://github.com/OpenFeign/feign/issues/590
Здесь вы можете найти пример, где один пользователь Feign использует тайм-ауты при инициализации ConfigurationManager
:
ConfigurationManager.getConfigInstance()
.setProperty("hystrix.command.PhotoService#getToken(String,String,String).execution.isolation.thread.timeoutInMilliseconds", 7000);
return Feign.builder()
.decoder(new GsonDecoder())
.encoder(new GsonEncoder())
.options(new Request.Options(config.getConnectTimeoutMillis(), config.getReadTimeoutMillis()))
.target(PhotoService.class, baseUrl);
Ответ №2:
Вы можете создать пользовательскую конфигурацию для конкретного FeignClien
Более подробная информация здесь: https://cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-feign.html#spring-cloud-feign-overriding-defaults
Например:
@FeignClient(name = "stores", configuration = FooConfiguration.class)
public interface StoreClient {
//..
}
и создайте компонент с пользовательской конфигурацией ( FooConfiguration.class
)
Комментарии:
1. спасибо за ответ! но таким образом, приложение может настроить только один метод, если есть десять методов, их время ожидания различно, как настроить?