问题描述
我在 Java 8 中使用 HystrixProperty 来设置方法的超时时间。我写了一个回退方法,其中有很多事情正在发生。一切正常,除了即使超时后,主线程也不会停止方法的执行。它肯定会调用回退方法,但不会中断/阻止主方法的执行。请看下面的例子。
客户端调用 Method1。
@HystrixCommand(fallbackMethod ="Method1Fallback",commandProperties = {
@HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds",value = "40000"),@HystrixProperty(name = "execution.isolation.strategy",value = "SEMAPHORE")},commandKey = "HystrixExample")
Method1 () {
//Line 1 -> Hystrix times out in these calls
Some Lines of Code.. API Calls,etc.
//Line 2 -> Rest of the code
Some Lines of Code.. API-2 Calls,etc.
}
Method1Fallback() {
Some lines of code.. API-3 Calls,etc.
}
现在,hystrix 在提到的第 1 行超时,并积极调用回退方法。但是,它不会停止 Method1 的执行,而是继续调用 Method1 中的其余代码,即调用 API-2 等
- 我想在 Method1 超时后立即停止它的执行。
- 因此,我不确定哪个结果(来自 Method1 或 Method1Fallback)作为响应传递给客户端。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)