2016-11-15 115 views
1

我已經建立了我的根演員:如何監控系統演員終止

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

當它停止,因爲永久連接失敗或別的東西,我想停止的應用程序。

我的想法是停止根actor,然後在PostStop覆蓋中調用Context.System.Terminate。問題是ActorSystem的創建者將如何知道actor系統終止?

+0

我從來沒有和演員一起工作,但是我對演員的想法的理解是讓單個演員崩潰,但保持系統正常運行。所以,可能沒有簡單的解決方案。我很好奇人們是否有解決方案。 – mm759

回答

1

我相信你應該可以使用actorSystem.WhenTerminated,它是ActorSystem上的一個屬性,返回一個Task,當ActorSystem被關閉時它會完成。

如果您對此持續或等待,您應該能夠乾淨地關閉您的應用程序。