Jen*_*der 3 java configuration timeout hystrix
我正在试验一下Hystrix.
我支持文档,即使是通过'run'对Hystrix命令的同步调用默认情况下也会在一个线程中运行,并且应该受Hystrix中配置的超时限制.但是当我尝试它时,似乎没有超时.
我是否误解了文档?或者我做错了什么?有没有办法通过同步调用获得超时行为?
更具体:我有一个'SimpleService'需要5秒才能返回.这包含在Hystrix命令中,超时为500ms:
public class WebRequestCommand extends HystrixCommand<String> {
private final SimpleService baneService;
protected WebRequestCommand(SimpleService baneService) {
super(
Setter.withGroupKey(HystrixCommandGroupKey.Factory.asKey("test"))
.andCommandPropertiesDefaults(
HystrixCommandProperties.Setter()
.withExecutionIsolationThreadTimeoutInMilliseconds(500)));
this.baneService = baneService;
}
@Override
protected String run() {
return baneService.connectToBane();
}
@Override
protected String getFallback() {
return "SERVICE NOT AVAILABLE";
}
}
Run Code Online (Sandbox Code Playgroud)
如果我这样称呼它:
WebRequestCommand webService = new WebRequestCommand(baneService);
result = webService.run();
Run Code Online (Sandbox Code Playgroud)
我在5秒后得到结果=>没有超时
如果我这样称呼它:
WebRequestCommand webService = new WebRequestCommand(baneService);
result = webService.queue().get();
Run Code Online (Sandbox Code Playgroud)
Hystrix超时在500ms后发生并返回回退.