1

私の Akka システムには、トップレベル (「ルート」) のアクターがInitializerあり、他のすべてのアクターはそこから来ています。Destroyerまた、メッセージを受信したときにシステムを正常にシャットダウンする役割を担うアクター もありDestroyます。Destroyアクターが に を送信する条件はいくつかありますが、Destroyerここではあまり重要ではありません。

に機能を実装したいと思います。その子InitializerSupervisorStrategy1 人によってスローされた失敗/例外を処理できない場合、それを「世界を止める」タイプのイベントとして解釈し、システムを正常にシャットダウンします。 .

私のひざまずく反応はInitializer、失敗をエスカレートさせることですが、最上位のアクターがエスカレートするとどうなるかわかりません。そのエスカレーションが何らかの方法で を呼び出す方法があればいいのですが、Desroyerそれをすべて接続する方法がわかりません。何か案は?

4

1 に答える 1

1

ここで同様の質問に答えました: Akka で最上位のスーパーバイザーをエスカレートする方法は?

基本的に、構成セットでは次のようになります。

akka.actor.guardian-supervisor-strategy = "akka.actor.StoppingSupervisorStrategy"

次にInitializer、システムにとって致命的なものにしたい例外をエスカレートする必要があります。その後、イニシャライザが停止します。Initializerからを監視Destroyerしてイベントに反応するTerminatedか、カスタムDestroyメッセージに固執する場合は内のからに送信Destroyします。DestroyerpostStop()Initializer

于 2015-08-21T09:31:48.137 に答える