所以我开始在我的Play 2.0应用程序中使用Akka actor.我很快注意到重复调用向同一个actor发送消息,通过以下方式指定:
val myActor = Akka.system.actorOf(Props[MyActor], name = "myactor")
导致InvalidActorNameException.
然后我开始阅读这个doc中Actors的创建
doc似乎建议创建一个“主”Actor类,其中包含指定的所有单个actor.反过来,此actor类的接收将匹配消息并将消息委托给适当的Actor.
所以我尝试了这个,现在有类似的东西:
class MasterActor extends Actor{
import context._
val emailActor = actorOf(Props[EmailActor], name = "emailActor")
protected def receive = {
case reminder : BirthdayReminder => emailActor ! reminder
}
}
问题是我和以前一样.当我尝试这样的事情时,我不知道如何避免InvalidActorNameException:
val myActor = Akka.system.actorOf(Props[MasterActor], name = "MasterActor")
myActor ! BirthdayReminder(someBirthday)
那么组织我的演员的正确方法是什么?
最佳答案 如果您只想要一个MasterActor,为什么要创建多个MasterActor?你应该只查看你已经创建的那个:
val actorRef = context.actorFor("MasterActor")
actorRef ! BirthdayReminder(someBirthday)