Hystrix信号量隔离中, 设置超时属性起作用吗?
我看有的代码里,采用Hystrix信号量隔离,信号量隔离不支持超时的,但是却用了HystrixPropertiesManager.EXECUTION_ISOLATION_THREAD_TIMEOUT_IN_MILLISECONDS
请问这个属性是不是在下面用了也不起作用?
`
@HystrixCommand(commandKey = "doSomething", fallbackMethod = "doSomethingFallback",
commandProperties = {
@HystrixProperty(name = HystrixPropertiesManager.EXECUTION_ISOLATION_STRATEGY, value = "SEMAPHORE"),
@HystrixProperty(name = HystrixPropertiesManager.EXECUTION_ISOLATION_SEMAPHORE_MAX_CONCURRENT_REQUESTS, value = "15"),
@HystrixProperty(name = HystrixPropertiesManager.EXECUTION_ISOLATION_THREAD_TIMEOUT_IN_MILLISECONDS, value = "50"),
@HystrixProperty(name = HystrixPropertiesManager.CIRCUIT_BREAKER_ERROR_THRESHOLD_PERCENTAGE, value = "10"),
}
) public String doSomething() {
...
}
`
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不起作用,信号量方式,不支持异步和超时。
是有效的,不知道楼上的说无效的依据是什么
从原理上来说,无论隔离策略时什么,都会走信号量的逻辑,只不过线程池策略的时候,信号量永远会返回true,而超时机制的实现是在通过信号量逻辑的校验之后,不可能受是否使用信号量策略的影响
从实践来说,测试也是有效