2016-03-21 1 views
0

Vous voulez redémarrer l'acteur après exception avec l'état précédent par les stratégies de superviseur.Redémarre l'acteur après exception avec l'état précédent.

Par exemple

superviseur Acteur enregistre certains paramètres de ses enfants. superviseur aussi a la prochaine stratégie:

 override val supervisorStrategy = 
      OneForOneStrategy(maxNrOfRetries = 10) { 

       case e : ActorKilledException  => { 
       log.info("Restart === " + e) 
       Restart 

//TODO HOW TO SEND SOME PARAMETER TO THE ACTOR, AFTER RESTART ? 
       } 
       case _: Exception    => Escalate 
      } 

Comment puis-je régler le paramètre précédent de l'acteur « avant l'accident » par supervisorStrategy. ?

Je ne pouvais pas le trouver en http://doc.akka.io/docs/akka/2.4.2/general/supervision.html

Tous les liens, des exemples?

Merci!

Répondre

2

Chaque fois que vous pensez "conserver l'état précédent", vous voulez la stratégie Resume. Redémarrer signifie spécifiquement "donnez-moi un nouvel acteur, sans l'état (éventuellement) corrompu".

Il est documenté dans la page que vous liez: "Reprendre le subordonné, en conservant son état interne accumulé".

Joyeux hack.

+0

Merci! résolu. –