5

アクターシステム内のすべてのアクターにメッセージを送信することは可能ですか?ブロードキャストルーターの例を見てきましたが、それはごくわずかであり、ルーターにアクターを動的に追加する方法を理解できません。

akkaにはscalaを使用しています。

ありがとう!

4

2 に答える 2

12
system.actorSelection("/user/*") ! msg

保護者のすべての子を選択し、メッセージを送信します。

于 2013-02-15T10:58:30.963 に答える
9

動的に作成されたすべてのアクターにメッセージを送信する場合は、eventBusを使用できます

私は個人的にsystem.eventStreamを自分のケースに使用しています。

俳優から、あなたは誰にでも送ることができます:

context.system.eventStream.publish(StatisticsMessage())

または直接システムで。

アクターはサブスクライブする必要があります:

context.system.eventStream.subscribe

私はから拡張します:

trait SubscriberActor extends Actor {

  def subscribedClasses: Seq[Class[_]]

  override def preStart() {
    super.preStart()
    subscribedClasses.foreach(this.context.system.eventStream.subscribe(this.self, _))
  }

  override def postStop() {
    subscribedClasses.foreach(this.context.system.eventStream.unsubscribe(this.self, _))
    super.postStop()
  }
}
于 2013-02-15T10:44:37.853 に答える