2016-11-15 9 views
1

を監視するために、どのように私は私のルート俳優作成しました:俳優のシステム終了

 topicRootActor = actorSystem.ActorOf(actorSystem.DI().Props<RootActor>(), typeof(RootActor).Name + '.' + topic); 
     topicRootActor.Tell(initMessage); 

をそして、それが原因で永続的な接続障害または何か他の停止時に、私はアプリケーションを停止します。

私の考えは、ルートアクターを停止してから、PostStopオーバーライドでContext.System.Terminateを呼び出すことです。問題はActorSystemの作成者がアクターシステムの終了を知る方法です。

+0

私は俳優とは一度も仕事をしたことがありませんが、俳優のアイデアを理解することは、シングルアクターをクラッシュさせ、システムを稼働させ続けることです。だから、簡単な解決法はないかもしれません。人々が解決策を持っているのであれば私は不思議です。 – mm759

答えて

1

Taskを返すActorSystemのプロパティであるactorSystem.WhenTerminatedを使用できると思います。これは、ActorSystemがシャットダウンされたときに完了します。

これを続行するか、または待機する場合は、アプリケーションを正常にシャットダウンする必要があります。