2016-04-28 6 views
1

プライマリコマンドが失敗した場合、自動的にHystrixを使用してセカンダリの実装に戻したいと思っています。これはちょっとうまくいく。hystrixで回路を手動で閉じる方法

しかし、一度プライマリコマンドが失敗し、セカンダリコマンドを使用してリクエストを処理すると、プライマリコマンドに自動的に戻る必要はありません。

私は、手動の「スイッチバック」をプライマリコマンドにしたい(これはビジネス上の必要があるためです)。

私はHystrixCommandExecutionHookを実装しようとしましたが、これは外部にしかリセットできない状態エンジンで動作します。 PrimaryCommandに障害が発生すると、StateEngineは「回線を開く」に切り替わります。一次コマンドを再度実行しようとすると、State-EngineはonExecutionStartフックでチェックされ、カスタムRuntimeExceptionが発生する可能性があります。

これはうまくいきますが、お客様が一度プライマリコマンドに戻すことを決定すると、次の実行がプライマリコマンドに戻ろうとする保証がないため、一部のコマンドがセカンダリとして実行される可能性がありますHystrixのコマンド。

TL; DR

、それが再び閉鎖される方法上の任意の自動「魔法」のないオープンになると、単に手動で回路を開閉する可能性がありませんか?

答えて

1

短い答えは「はい」です。

回路遮断器のプロパティーcircuitBreaker.forceClosedを使用して強制的に回路を閉じることができます。このプロパティは、trueに設定されたときに回路ブレーカを強制的に閉状態にします。