This earlier question suggère que l'appel de 'stop' sur un acteur superviseur arrêtera tous les acteurs liés. Cependant, si on crée un acteur 'custom' (pas par une usine), il semble que cet arrêt automatique ne se produise pas. Par exemple, voir le code de la réponse à another question:Création d'un superviseur Akka personnalisé qui ferme tous les acteurs liés
class Module1 extends Actor {
self.faultHandler = OneForOneStrategy(List(classOf[Throwable]), 5, 5000)
def receive = {
case Register(actor) =>
self.link(actor)
}
}
Si « stop » a été appelé l'acteur Module1 ci-dessus, les acteurs qui y sont liés ne fermer. Existe-t-il un moyen de faire en sorte qu'un acteur personnalisé ferme automatiquement les acteurs liés? Ou est-ce juste quelque chose que vous devez écrire vous-même si vous voulez créer un acteur personnalisé?
Merci!
être dans une ambiance difficile: peut-être bon de mentionner que postStop() est l'endroit idéal pour mettre ce code ;-) –
J'ai vu du code comme ça dans la classe SupervisorActor dans le code source d'Akka. Donc, je pourrais copier et coller ce code de SupervisorActor dans ma propre classe de superviseur personnalisé à coup sûr. Je me demandais simplement s'il existait un meilleur moyen que le codage copier-coller. Y a-t-il d'autres comportements que je dois copier et coller dans mon superviseur personnalisé? Comme la possibilité de redémarrer les enfants Acteurs qui ont planté? – bnsmith
Non, ça devrait être ça. Bien, il convient de noter que vous n'avez pas besoin de le faire manuellement en 2.0-M1 et en avant. –