Si creo un actor usando context(). ActorOf() en Akka, obtengo un ActorRef válido. Sin embargo, si hago lo mismo, pero creo un ActorRef usando actorFor y la ruta que sé que aparecerá el actor, no obtengo un ActorRef válido de manera confiable. ¿Cómo puedo decir que un actor ha sido registrado con éxito?En Akka, ¿cómo sé cuándo un actor está listo para usar después de haber sido registrado con actorOf()?
En la descripción anterior, podría simplemente usar el ActorRef devuelto por actorOf(). Sin embargo, en mi caso real, creo un actor que registra a un actor secundario y necesito resolverlo, por lo que el problema en general es "¿cómo puedo esperar/registrarme para estar informado de que un actor se ha registrado en una ruta conocida? ".
De acuerdo en los dos primeros puntos, es posible que el actor nunca haya estado allí y se haya ido antes de que tuviera la oportunidad de usarlo. En el primero, supongo que lo que realmente estoy buscando es cómo cargar correctamente un sistema basado en actores. ¿Debo preguntarle a() un actor que representa un subsistema usando un mensaje de inicio para asegurarse de que él y sus subsistemas a su vez estén listos? – SoftMemes
Crea tu sistema como un gráfico de Actores. Luego puede usar una combinación de DeathWatch y eventStream del sistema para publicar vivo/muerto. Sería interesante tener un LifeWatch también. Pero el riesgo es que perderá memoria si el actor nunca cobra vida. –
al usar akka.testkit, usted envía un mensaje al actor inmediatamente instanciado ... necesita una forma de saber que está listo ... – KitAndKat