2012-02-20 10 views
5

W Akka 2.0, istnieje dobry sposób na zamknięcie wszystkich aktorów pod ścieżką/użytkownikiem? Na przykład, powiedzmy, że należy wykonać następujące czynności:zatrzymać wszystkie podmioty w systemie bez wyłączania samego systemu?

val system = ActorSystem.create("mySystem") 

system.actorOf(Props(new MyActor1), "actor1") 
system.actorOf(Props(new MyActor2), "actor2") 

Jakiś czas później zdecyduję chcę zatrzymać wszystkich podmiotów uczestniczących w systemie. Jeśli poprawnie zrozumiem, actor1 i actor2 będą dziećmi ścieżki/użytkownikiem, ale nie widzę metody, która da mi możliwość powtórzenia się z dziećmi z ActorRef. Czy istnieje inny sposób?

+4

możesz nie chcieć, aby stworzyć wiele podmiotów pod korzeń bezpośrednio, ponieważ tworzy bardzo płytkie ale szeroki drzewo. Utwórz najpierw jeden poziom, a następnie PoisonPill to jeden? –

+0

Początkowo sądziłem, że to nie dotyczy mojego problemu, ale po więcej uwagi myślę, że kolejna warstwa aktorów może być w porządku. Zasadniczo zarządzam połączeniami dla usługi, a połączenia są zawieszane bezpośrednio z systemu aktora. Wierzę, że dodam obsługę kontenera połączenia. Dzięki! – jxstanford

+0

Serdecznie zapraszamy :-) –

Odpowiedz

12

Użyj wybór aktora wysłać PoisonPill do wszystkich podmiotów najwyższego szczebla:

system.actorSelection("/user/*") ! PoisonPill 
Powiązane problemy