2016-07-10 20 views
4

Beim Herunterfahren eines ActorSystems habe ich festgestellt, dass ActorSystem::shutdown veraltet war. Es wird vorgeschlagen, "Use the terminate() method instead".Gibt es einen Grund für die Abwertung der Shutdown-Methode?

Aber die decumentation dieser Methoden ist fast das gleiche:

/** 
    * Terminates this actor system. This will stop the guardian actor, which in turn 
    * will recursively stop all its child actors, then the system guardian 
    * (below which the logging actors reside) and the execute all registered 
    * termination handlers (see [[ActorSystem#registerOnTermination]]). 
    * Be careful to not schedule any operations on completion of the returned future 
    * using the `dispatcher` of this actor system as it will have been shut down before the 
    * future completes. 
    */ 
    def terminate(): Future[Terminated] 

und

/** 
    * Stop this actor system. This will stop the guardian actor, which in turn 
    * will recursively stop all its child actors, then the system guardian 
    * (below which the logging actors reside) and the execute all registered 
    * termination handlers (see [[ActorSystem#registerOnTermination]]). 
    */ 
    @deprecated("Use the terminate() method instead", "2.4") 
    def shutdown(): Unit 

mit einer Ausnahme, dass der Rückgabetyp geändert hat. Was war der Grund für die Ablehnung shutdown? War es nicht sicher?

Antwort

4

Es scheint, dass die Vernachlässigung der in anderen Bereichen des Projekts verwendeten Terminierungskonvention folgen und Terminierungsereignisse offen legen sollte.

Der wichtigste Teil ist die Abschlussveranstaltungen:

Die Abschlusshaken ermöglichen System Akteure endgültige Bereinigung durchzuführen, bevor das System herunter oder Neustarts schaltet - in diesem speziellen Fall Remote-Systeme wissen zu lassen, ist es, dass jede Remote- Einsatz Akteure auf dem Beenden von System sind tot, aber es gibt andere Fälle, in denen diese in Akka Kern verwendet werden

Siehe für weitere Informationen folgende:

+0

Nun, dachte ich, dass alles über Schauspieler asynchron ist (einschließlich der 'shutdown' Methode). Wir wollen frei sein. BTW was "termin convention" meinst du? – stella

+0

Entschuldigung, das war eine schlechte Formulierung meinerseits ... Ich habe die Antwort aktualisiert. – Casey

+1

Cool, der zugehörige Link erklärt das. Vielen Dank. Kurz gesagt, es ist für eine feinkörnigere Terminierung gemacht worden, oder? – stella

Verwandte Themen