4

Play 2.0 アプリ内で Akka アクターを使い始めました。次の方法で指定された、同じアクターにメッセージを送信するための呼び出しが繰り返されていることにすぐに気付きました。

val myActor = Akka.system.actorOf(Props[MyActor], name = "myactor")

となりましたInvalidActorNameException

次に、このドキュメントでアクターの作成について読み始めました。

ドキュメントは、そこに指定されたすべての個々のアクターを使用して「マスター」アクター クラスを作成することを推奨しているようです。次にreceive、このアクター クラスの がメッセージに一致し、メッセージを適切なアクターに委任します。

だから私はこれを試してみましたが、今は次のようなものがあります:

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)

アクターを整理する正しい方法は何ですか?

4

1 に答える 1

2

MasterActor が 1 つだけ必要な場合、なぜ複数の MasterActor を作成するのですか? すでに作成したものを検索するだけです。

val actorRef = context.actorFor("MasterActor")
actorRef ! BirthdayReminder(someBirthday)
于 2012-12-28T15:24:25.183 に答える