Ho un attore genitore Akka con diversi bambini. Quando l'attore genitore viene riavviato, ho bisogno di fermarlo semplicemente, piuttosto che fermarlo e ricrearlo o riavviarlo. (Un bambino verrà creato manualmente in seguito, se necessario.) C'è un modo per farlo? Forse sovrascrivendo il metodo preRestart
del genitore in qualche modo?Come arrestare semplicemente gli attori figli al riavvio di un genitore?
5
A
risposta
3
Per impostazione predefinita, Actor
elimina i suoi figli al riavvio. Ecco il codice Actor.preRestart
:
/**
* User overridable callback: '''By default it disposes of all children and then calls `postStop()`.'''
* @param reason the Throwable that caused the restart to happen
* @param message optionally the current message the actor processed when failing, if applicable
* <p/>
* Is called on a crashed Actor right BEFORE it is restarted to allow clean
* up of resources before Actor is terminated.
*/
@throws(classOf[Exception]) // when changing this you MUST also change UntypedActorDocTest
//#lifecycle-hooks
def preRestart(reason: Throwable, message: Option[Any]): Unit = {
context.children foreach { child ⇒
context.unwatch(child)
context.stop(child)
}
postStop()
}
Come si può vedere genitore si ferma e unwatch suoi figli. È possibile ignorare in questo modo di fare un attore tenerlo vivo per bambini:
override def preRestart(reason: Throwable, message: Option[Any]): Unit =()
Così, per gli scopi che non hanno bisogno di ignorare preRestart
e avrete comportamento desiderato. Puoi guardare altri callback se desideri avere un comportamento più personalizzato come avviare i bambini all'avvio ma non all'avvio.
Problemi correlati
- 1. interrompe tutti gli attori in un sistema senza arrestare il sistema stesso?
- 2. Come tutti i figli di un genitore utilizzando Query MSSQL
- 3. Passare gli eventi al genitore
- 4. Come utilizzare gli attori per l'accesso al database e DDD?
- 5. Come far crescere un genitore con i suoi figli?
- 6. come fare gli attori (erlang) in java?
- 7. Come designare un pool di thread per gli attori
- 8. React.js: allegare evento dal genitore ai figli
- 9. come trascinare gli attori su libgdx scene2d?
- 10. Akka. Come illustrare gli attori in UML?
- 11. pykka - Gli attori sono lenti?
- 12. Come spiegheresti gli attori a un non-programmatore?
- 13. Come condivido il comportamento tra gli attori di Akka?
- 14. Riduci div genitore al numero sconosciuto di figli fluttuanti (css o js)
- 15. Altezza automatica sul contenitore genitore con figli assoluti/fissi
- 16. Gli attori Scala: ricevere vs reagire
- 17. Scopo di avere figli astratti estendendo il genitore concreto
- 18. Come faccio a ricaricare weblogic JSP nella cache al riavvio
- 19. Python tkinter - come eliminare tutti gli elementi figli?
- 20. Implementare gli attori Eventbus con riferimenti deboli?
- 21. terminano correttamente gli attori akka in scala
- 22. Scala: Perché gli attori sono leggeri?
- 23. Quando utilizzare gli attori locali o remoti?
- 24. .htaccess reindirizza per genitore ma non per figli?
- 25. Perché Entity Framework inserisce figli quando aggiorno il genitore?
- 26. Come accedere ai figli di un ItemsControl?
- 27. Devo aggiungere un pixel al div genitore
- 28. TFS 2013: Ottenere tutti gli elementi di lavoro al di sotto di un certo genitore
- 29. Come cercare i figli di un HTMLDivElement?
- 30. Posizione assoluta ma relativa al genitore
come si creano i bambini: incondizionatamente durante l'inizializzazione dei genitori o in ricezione? –
@AlekseyIzmailov su ricevere. – Lasf
Sembra che i bambini creati in ricezione (anziché durante l'inizializzazione del genitore) vengano fermati ma non ricreati. Tuttavia, non mi sono convinto di questo. Qualcuno può confermare che questo è il comportamento reale? – Lasf