2012-02-20 12 views
5

In Akka 2.0, c'è un modo carino per chiudere tutti gli attori sotto il percorso/utente? Per esempio, diciamo che faccio la seguente:interrompe tutti gli attori in un sistema senza arrestare il sistema stesso?

val system = ActorSystem.create("mySystem") 

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

Qualche tempo dopo, decido che voglio smettere di tutti gli attori del sistema. Se capisco le cose correttamente, attore1 e actor2 saranno figli del percorso/utente, ma non vedo un metodo che mi dia un iterabile dei figli di un ActorRef. C'è un altro modo?

+4

Non si potrebbe desiderare di creare un sacco di attori sotto la radice direttamente, dal momento che crea un albero molto superficiale ma largo. Crea prima un livello e poi PoisonPill quello? –

+0

Originariamente pensavo che questo non si applicasse al mio problema, ma dopo una riflessione più approfondita, penso che un altro livello di attori potrebbe essere in ordine. In pratica gestisco le connessioni per un servizio e le connessioni sono direttamente collegate al sistema degli attori. Credo che aggiungerò il supporto per un contenitore di connessioni. Grazie! – jxstanford

+0

Sei il benvenuto :-) –

risposta

12

Utilizzare una selezione di attore per inviare un PoisonPill a tutti gli attori di alto livello:

system.actorSelection("/user/*") ! PoisonPill 
Problemi correlati