Spring cloud Hystrix正在回退中访问当前执行状态

Spring cloud Hystrix正在回退中访问当前执行状态,spring-cloud,hystrix,Spring Cloud,Hystrix,我成功地配置了springcloud(通过springcloudstarterhystrix)来包装对服务的调用 这一切都很好,如下所示: @组件 公共类MyService{ @HystrixCommand(fallbackMethod=“fallback”) 公营机构{ //这可能会失败 } 公共无效回退(){ //回退代码 } } 我现在的问题是,我想在longlunning() 尝试在回退方法中访问HystrixRequestLog.getCurrentRequest(),将抛出 jav

我成功地配置了
springcloud
(通过
springcloudstarterhystrix
)来包装对服务的调用

这一切都很好,如下所示:

@组件
公共类MyService{
@HystrixCommand(fallbackMethod=“fallback”)
公营机构{
//这可能会失败
}
公共无效回退(){
//回退代码
}
}
我现在的问题是,我想在
longlunning()

尝试在回退方法中访问HystrixRequestLog.getCurrentRequest(),将抛出

java.lang.IllegalStateException:HystrixRequestContext.initializeContext()必须在每个请求的开头调用,然后才能使用RequestVariable功能

我正在寻找一种简单的方法来记录调用回退时长时间运行的异常


使用
v1.0.0.RC2进行测试要查看堆栈跟踪,只需在
com.netflix.hystrix
中启用调试日志即可


据我所知,要使用
HystrixRequestContext
MyService
的调用者必须在使用服务之前调用
HystrixRequestContext.initializeContext()
。这很糟糕,所以如果有人有更好的想法,我很感兴趣。

从Javanica v1.4.21开始,它允许回退方法有一个Throwable类型的参数来访问命令执行异常,如下所示:

public void fallback(Throwable e) {
   // fallback code
   LOGGER.error(e.getMessage());
}

要获得此功能,您的构建配置需要覆盖Spring Cloud引入的旧版本Javanica。

您是否尝试在
com.netflix.hystrix
中启用调试日志记录?添加日志记录成功了-现在报告了longRunning的完整堆栈跟踪-谢谢对我来说也有点麻烦,如果有更好的方法记录错误,以便更容易发现生产中的错误,那将是一件有趣的事情。。。