scala akka

scala - Akka actorPara pasar un ActorRef



(1)

En mi humilde opinión, tienes tres estrategias, que enumero desde el más cercano a tu problema (pero también a mi peor patrón, lo siento)

Estrategia 1: creas el actor A y el actor B, pasando el actorRef A al constructor del actor B. Tu ping-pong comenzará cuando el actor B envíe un mensaje al actor A, y el actor A simplemente puede responder usando la referencia del remitente. (O al revés)

Estrategia 2: crea una capa en su aplicación que se encarga de la asignación de nombres: asigna el nombre al momento de la creación del actor, así como al consultar. Esto centraliza el problema en un solo punto.

Estrategia 3: Se pregunta si los actores de dos hermanos que juegan al ping-pong no están reemplazando una jerarquía de actores mejor y más modular, donde básicamente cada actor se comunica solo con sus padres y sus hijos y no tiene conocimiento de sus hermanos.

Estoy aprendiendo Akka y estoy tratando de averiguar cómo lograr que los actores hablen entre sí (llamémoslos A y B ). No es un escenario de solicitud / respuesta, A y B se envían mensajes en cualquier momento.

En este momento tengo dos actores hermanos que pasan mensajes en ambas direcciones el uno al otro. Ambos están creados directamente en el ActorSystem . Inicialmente había pasado el ActorRef de A al constructor de B Pero no puedo pasar el ActorRef de B al constructor de A porque aún no existe, es decir, no puedo usar este método para referencias circulares.

He estado leyendo sobre actorFor y esto me permitiría buscar un actor que use su camino. Sin embargo, no estoy cómodo con esta configuración, porque si la ruta cambia, el compilador no la detectará.

Otra alternativa, considerando que cada actor tiene acceso a su padre, es pasar los mensajes de A y B al padre y luego hacer que el padre pase el mensaje a A y B Pero esto une al padre con los tipos de mensajes que se están pasando de un lado a otro.

¿Qué estrategias utilizan las personas para que los actores se conozcan entre sí? ¿Soy demasiado cauteloso al buscar actores por camino?