通过https://github.com/Netflix/Hystrix/wiki/How-To-Use#Asynchronous-Execution,我了解到要在异步环境中执行Hystrix调用,我需要扩展HystrixCommand类并使用.queue()来执行。 Spring还为异步调用提供@Async批注。我的问题是,如果我在@Async注释的方法中执行command.queue()会发生什么?
@Async
public Future<ResponseEntity<RResponse>> getRStatus(RRequest request) throws Exception {
//Switch to kill Hystrix
if (useHystrix) {
PHystrixProxy proxy = new PHystrixProxy(request, rHelper, commonUtil, endPoint);
return proxy.queue();
}
else
{
//take the normal route
}
}
我知道,如果禁用Hystrix,则正常路由将异步执行。但是,如果启用Hystrix,该怎么办? @Async在这里会产生什么影响?