Я хотел бы программно заставить автоматический выключатель открыть для определенной группы. Я думал, что смогу это сделать, установив конфигурацию в команде в группе, чтобы принудительно открыть ее и запустить эту команду. Однако это не работает. Это возможно? Должен ли я придерживаться другого подхода? Вот тест, который я пробовал, который терпит неудачу во втором вызове assertEquals.Как отключить автоматический выключатель Hystrix?
import com.netflix.hystrix.HystrixCommand;
import com.netflix.hystrix.HystrixCommandGroupKey;
import com.netflix.hystrix.HystrixCommandProperties;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class ForceCircuitBreakerCommandTest {
@Test
public void testForceOpen(){
assertEquals(Boolean.TRUE, new FakeCommand().execute());
new OpenCircuitBreakerCommand().execute();
assertEquals(Boolean.FALSE, new FakeCommand().execute());
}
private class FakeCommand extends HystrixCommand<Boolean> {
public FakeCommand(){
super(Setter.withGroupKey(HystrixCommandGroupKey.Factory.asKey("TestGroup")));
}
@Override
public Boolean run(){return Boolean.TRUE;}
@Override
public Boolean getFallback() {return Boolean.FALSE;}
}
private class OpenCircuitBreakerCommand extends HystrixCommand<Boolean> {
public OpenCircuitBreakerCommand(){
super(Setter.withGroupKey(HystrixCommandGroupKey.Factory.asKey("TestGroup"))
.andCommandPropertiesDefaults(HystrixCommandProperties.Setter()
.withCircuitBreakerForceOpen(true)));
}
@Override
public Boolean run(){return Boolean.TRUE;}
@Override
public Boolean getFallback() {return Boolean.FALSE;}
}
}
Просьба представить контекст, что вы редактировали и почему – Count