如何用不同的路径创建akka actor?

时间:2014-09-17 09:08:17

标签: scala akka actor

如果创建一个actor(没有名字),它将存在于路径akka.tcp://system@192.168.1.2:2552/user/$a#-576914160中。如果可以直接在myGpurp子路径中创建一个actor?例如。结果actor路径为akka.tcp://system@192.168.1.2:2552/user/myGpurp/$a#-576914160

2 个答案:

答案 0 :(得分:4)

您需要创建一个名为myGpurp的actor,然后让该actor创建一个孩子。这是获得所需路径的唯一方法。

答案 1 :(得分:4)

首先你必须创建命名演员myGpurp:

val myGpurp: ActorRef = context.actorOf(Props(classOf[myGpurp]),"myGpurp")

在MyGpurp中,您可以创建匿名或命名的actor:

import akka.actor.{Actor, ActorRef, Props}

class MyGpurp extends Actor {
  override def receive: Receive = {
    case m: Any =>
      val child: ActorRef = context.actorOf(Props(classOf[SomeActor]))
      child ! "Message"
  }
}

SomeActor的路径将类似于akka.tcp://system@192.168.1.2:2552/user/myGpurp / $ a#-576914160