Сопоставление значений команды Hystrix вызывает исключение HystrixProperty

#java #spring #spring-boot #hystrix #circuit-breaker

#java #весна #весенняя загрузка #hystrix #автоматический выключатель

Вопрос:

Рассмотрим приведенный ниже код,

Основной класс

 @SpringBootApplication
@EnableCircuitBreaker
public class Main {
}
 

RestController

 @PostMapping("/...")
@HystricCommand(commandProperties = { @HystrixProperty(name=”execution.isolation.thread.timeoutInMilliSeconds”, value=”${request.timeout.interval}”)})
public Object getData(){
}
 

Когда я вызываю эту конечную точку, я получаю:

Исключение HystrixProperty — не удалось установить свойства commandproperty. GroupKey: MyController, commandKey: getData, ThreadPool: ‘null’.

Когда я удаляю -> value=”${request.timeout.interval}” и жестко кодирую его как -> value=”1000” , исключение больше не отображается, и выполнение выполняется успешно.

Разве мы не можем выполнить сопоставление значений здесь? Если нет, возможно ли переместить это свойство в application.properties или глобально обработать свойство с помощью любого файла конфигурации?

Я не хочу, чтобы поле значения было жестко запрограммировано вместе с моими конечными точками, поскольку в моем приложении более 10 конечных точек.

Ответ №1:

Из команды @HystrixCommand в вашем контроллере удалите свойство HystrixProperty, настроенное для тайм-аута, и укажите командный ключ =. Теперь в вашем приложении.properties добавьте,

 hystrix.command.HystrixCommandKey.execution.isolation.thread.timeoutInMilliseconds=2000
 

Для получения более подробной информации оформите заказ,
https://github.com/Netflix/Hystrix/wiki/Configuration#execution.isolation .поток.Время ожидания в миллисекундах