¿Necesito reutilizar el mismo Akka ActorSystem o puedo crear uno cada vez que lo necesite?
Akka 2.x requiere muchos comandos para hacer referencia a unaActorSystem
. Entonces, para crear una instancia de un actor.MyActor
tu podrias decir:
val system = ActorSystem()
val myActor = system.actorOf(Props[MyActor])
Debido a la frecuente necesidad de unActorSystem
: muchos ejemplos de código omiten la creación del código y suponen que el lector sabe dóndesystem
variable ha venido de
Si su código produce actores en diferentes lugares, podría duplicar este código, posiblemente creando másActorSystem
instancias, o podrías intentar compartir la mismaActorSystem
instancia al referirse a algún global o pasando elActorSystem
alrededor.
La documentación de Akka proporciona unaVisión general de los sistemas de actores. bajo el título 'Sistemas de actores', y haydocumentación de laActorSystem
clase. Pero ninguno de estos ayuda mucho para explicar por qué un usuario de Akka no puede simplemente confiar en Akka para gestionar este problema.
¿Cuáles son las implicaciones de compartir lo mismo?ActorSystem
¿Objetar o crear uno nuevo cada vez?
¿Cuáles son las mejores prácticas aquí? Pasando alrededor de unActorSystem
Todo el tiempo parece sorprendentemente mano dura.
Algunos ejemplos dan laActorSystem
un nombre:ActorSystem("MySystem")
otros solo llamanActorSystem()
. ¿Qué diferencia hace esto y qué pasa si usas el mismo nombre dos veces?
Haceakka-testkit
requiere que compartas un comúnActorSystem
con el que pasas a laTestKit
¿constructor?