如何从演员本身中获取 Akka 演员的名字?
Posted
技术标签:
【中文标题】如何从演员本身中获取 Akka 演员的名字?【英文标题】:How can I get the name of an Akka actor from within the actor itself? 【发布时间】:2013-11-22 03:17:25 【问题描述】:所以,如果我有一个演员,我可以给它起个名字。但是,我可以在内部访问该名称吗?示例:
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"
现在,我可以将其名称作为构造函数参数传递。但是,如果有办法在内部获取名称,这似乎是不必要的重复......因为它是在我使用 system.actorOf
实例化演员时设置的。 API 文档似乎没有任何内容。
【问题讨论】:
如果你使用ActorLogging
,为什么需要演员的name
?记录器默认提供所有需要的关于演员的信息来检测一个。
【参考方案1】:
从Actor
,您可以使用self
获取ActorRef
。
val actorName = self.path.name
http://doc.akka.io/api/akka/2.2.3/#akka.actor.Actor
http://doc.akka.io/api/akka/2.2.3/#akka.actor.ActorRef
http://doc.akka.io/api/akka/2.2.3/#akka.actor.ActorPath
【讨论】:
以上是关于如何从演员本身中获取 Akka 演员的名字?的主要内容,如果未能解决你的问题,请参考以下文章