如何仅在hystrix中手动关闭电路

时间:2016-04-28 13:22:24

标签: hystrix

如果主命令失效,我想使用Hystrix自动回退到辅助实现。这很有效。

但是一旦主命令失效,并且辅助命令用于处理请求,我不想自动切换回主命令。

我想要一本手册"切换回来"到主命令(因为有业务需要这样做)。

我尝试实现一个HystrixCommandExecutionHook,它与一个只能在外部重置的状态引擎一起工作。一旦PrimaryCommand失败,StateEngine切换到"电路打开"。每当尝试再次执行主命令时,都会在onExecutionStart挂钩中检查State-Engine,并可能引发自定义RuntimeException

这样可行,但问题是一旦客户决定切换回主命令,就无法保证下一次执行会尝试切换回主命令,因此某些命令仍然可以作为辅助命令执行通过Hystrix。

TL;博士

一旦打开电路没有任何自动"魔法"是否有可能只是手动关闭电路。如何再次关闭?

1 个答案:

答案 0 :(得分:1)

简短的回答是。

您可以使用断路器属性circuitBreaker.forceClosed强行关闭电路。当该断路器设置为true时,该属性会强制断路器进入闭合状态。