Akka 2.x nécessite de nombreuses commandes pour faire référence à un ActorSystem
. Ainsi, pour créer une instance d'un acteur MyActor
vous pourriez dire:
val system = ActorSystem()
val myActor = system.actorOf(Props[MyActor])
En raison de la fréquente nécessité d'un ActorSystem
: de nombreux exemples de code omettre la création du code et de supposer que le lecteur sait d'où un system
variable.
Si votre code produit acteurs dans des endroits différents, vous pouvez dupliquer ce code, éventuellement, la création de nouvelles ActorSystem
des cas, ou vous pourriez essayer de partager le même ActorSystem
exemple en se référant à certains globale ou par la transmission de l' ActorSystem
autour de.
Akka documentation fournit un aperçu général des systèmes d'acteurs sous la rubrique 'Acteur des Systèmes, et il y a de la documentation de l' ActorSystem
classe. Mais aucun de ces d'une grande aide dans l'explication de pourquoi un utilisateur d'Akka ne pouvez pas simplement compter sur Akka pour gérer ce sous le capot.
Question(s)
Quelles sont les implications de partager le même
ActorSystem
objet ou d'en créer un nouveau à chaque fois?Quelles sont les meilleures pratiques? De passage autour de l'
ActorSystem
tous le temps semble étonnamment lourd.Quelques exemples de donner l'
ActorSystem
un nom:ActorSystem("MySystem")
autres juste appelez -ActorSystem()
. Quelle différence cela fait-il, et si vous utilisez le même nom à deux reprises?N'
akka-testkit
exigent que vous partagentActorSystem
avec celui que vous avez passer à l'TestKit
constructeur?