2017-08-08 1 views
0

En regardant mon fichier journal, je vois un répartiteur différent pour le même acteur. cet acteur est créé une fois alors comment peut-il être? est-ce que cela signifie que l'acteur a été redémarré en raison d'un accident? par exemple:Différent Dispatcher pour le même acteur

[ERREUR] [07/08/2017 19: 20: 22,618] [my-sys-akka.actor.default-répartiteur-21] [ AKKA: // my-sys/utilisateur/com.domain.FooActor] some_exception

[eRREUR] [07/08/2017 19: 20: 22,619] [my-sys-akka.actor.default-répartiteur-26] [akka: // my-sys/user/com.domain.FooActor] some_exception

[eRREUR] [07/08/2017 19: 20: 22,619] [my-sys-akka.actor.default-répartiteur-27] [ Akka://my-sys/user/com.domain.FooActor] some_exception

+0

Ces threads ne sont-ils pas différents du répartiteur par défaut? –

+0

Oui c'est. Peut être facilement vérifié en jetant un coup d'oeil à la conf de journalisation. – cchantep

+0

@FredericA. l'acteur est créé une fois. Pouvez-vous élaborer s'il vous plaît? – igx

Répondre

0

Je suis à peu près certain que votre enregistreur est configuré pour consigner le thread à partir duquel le journal a été généré. Vérifiez votre configuration de logger, mais je suppose que le à la troisième position, vous connectez le thread (noms de thread à partir du journal ci-dessus: my-sys-akka.actor.default-dispatcher-XX). Un répartiteur planifie l'exécution de vos tâches sur un pool de threads. Par définition, un pool peut avoir plusieurs threads, et à travers les logs, vous voyez que l'exécution de votre acteur est programmée sur différents threads appartenant à un seul répartiteur. Avec les logs donnés, il n'y a aucune indication claire que votre acteur s'est écrasé/a redémarré, juste l'indication que lui (ou son superviseur) a appelé des méthodes log (ie, log.error()) tout en s'exécutant sur différents threads. Ceci est attendu car plusieurs acteurs (potentiellement des millions) sont destinés à partager quelques threads (dans le cas du répartiteur par défaut, cela dépend du nombre de CPU, de cœurs, ...).

Vous ne devriez pas vous attendre à ce que vos acteurs tournent toujours sur le même sujet.

Il est impossible qu'un acteur s'exécute sur un autre répartiteur (à moins que vous ne le configuriez explicitement de cette façon).