У меня есть автоматический выключатель, параметры которого я хотел бы изменить во время работы. Такие вещи, как потоки и время ожидания, должны быть настроены на сайте клиента.
Я создаю HystrixCommandProperties.Setter следующим образом:
HystrixCommandProperties.Setter hystrixProps =
HystrixCommandProperties.defaultSetter()
.withCircuitBreakerSleepWindowInMilliseconds(myconf.sleepWindow);
HystrixThreadPoolProperties.Setter threadPoolSettings =
HystrixThreadPoolProperties.Setter()
.withCoreSize(myconf.threadPoolSize);
new MyCommand(HystrixCommand.Setter.withGroupKey("mygroup")
.andCommandPropertiesDefaults(hystrixProps)
.andThreadPoolPropertiesDefaults(threadPoolSettings));
MyCommand реализует стандартный HystrixCommand и вызывает super(hystrixProps).
Это работает в первый раз, но когда я пытаюсь изменить свойства во время выполнения (то же имя группы), ничего не происходит. Есть ли другой способ программно изменить это?
Я не хочу просматривать файлы свойств или указывать URL-адрес Archaius.
Есть также ответы, которые говорят мне пройти через Archaius с помощью ConfigurationManager.getConfigInstance().setProperty("...") . Но наверняка должен быть способ, похожий на оригинальные сеттеры, которые я создаю? Делать это совершенно по-другому, потому что это второй раз, просто неудобно.