scala - actors - ¿Cómo puedo obtener el nombre de un actor Akka dentro del mismo actor?
akka actor watch (1)
Entonces, si tengo un actor, puedo darle un nombre. Pero, ¿puedo acceder a ese nombre internamente? Ejemplo:
class Actorz extends Actor with ActorLogging {
val actorName = //??What function
def receive = {
case x => log.debug(actorName+": Received Message: "+x)
}
}
val actor = system.actorOf(Props[Actorz], "named")
actor ! "dogs"
Ahora, puedo pasar su nombre como un parámetro constructor. Pero eso parece una duplicación innecesaria si hay una forma de obtener el nombre internamente ... tal como se configuró al crear una instancia del actor usando system.actorOf
. Los documentos API no parecían tener nada.
Desde un Actor
puedes usarlo para obtener el ActorRef
.
val actorName = self.path.name
http://doc.akka.io/api/akka/2.2.3/#akka.actor.Actor