2017-01-24 8 views
0

Ich habe drei Schauspieler. Schauspieler A laicht Schauspieler B und Schauspieler C für verschiedene Aufgaben und hängt nicht von dem Ergebnis der Schauspieler B und CAbschluss Schauspieler Hierarchie

Schauspieler B und C in der folgenden Art und Weise erstellt werden:

ActorRef actorB = this.getContext().actorOf(Props.create(ActorB.class, t)); 
actorB.tell(new msg, getSelf()); 

ActorRef actorC = this.getContext().actorOf(Props.create(ActorC.class, t)); 
actorC.tell(new anothermsg, getSelf()); 

Wie stelle ich sicher dass diese Hierarchie abgerissen wird, nachdem die Aufgabe von jedem Akteur abgeschlossen wurde?

Schicke ich eine explizite poisonPill Nachricht an beide Akteure B und C? Oder wird das erledigt?

Antwort

1

Wenn B und C unabhängig von A angehalten werden sollen, ist der einfachste Weg für sie, nach Abschluss ihrer Arbeit context stop self aufzurufen. A kann über dieses Ereignis benachrichtigt werden, indem es sich über - z.B. - context watch b.

Wenn Sie möchten, dass die gesamte Hierarchie gleichzeitig stoppt - also wenn A endet - dann müssen Sie nur A stoppen, da alle untergeordneten Objekte automatisch gestoppt werden.

Weitere Informationen zum Thema finden Sie unter here.