默认情况下,Akka演员在嵌套时会得到一个名为'$ a'或'$ a。$ oi。$ abc'的名称。因此,给它们一个正确的名称是有意义的,这样你至少可以在日志中看到一些合理的名称。 但是......只能有一个具有给定名称的演员。那么如何给演员一个合理但独特的名字呢?
我已经经历过以毫秒时间戳为名称后缀是不够的。它仍会导致重复的名称异常。这是一种获得纳米时间戳的方法,但我已经读过它的价格昂贵。
如果可以使用默认的Akka命名,但后缀或带有自定义名称的前缀,那就太好了。
有什么想法吗?
答案 0 :(得分:0)
你可以增加一些计数器并在你创建新actor时使用它。
var counter = 0
val a = actorSystem.actorOf(Props[MyActorClass], s"actor-$counter")
counter += 1
答案 1 :(得分:0)
使用context.actorOf(...)
创建角色的层次结构。所以你可以轻松避免碰撞。