【发布时间】:2013-02-15 20:33:20
【问题描述】:
【问题讨论】:
【问题讨论】:
system.actorSelection("/user/*") ! msg
选择监护人的所有孩子并向他们发送消息。
【讨论】:
如果要向所有动态创建的actor发送消息,可以使用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()
}
}
【讨论】:
postStop 你需要“取消订阅”; 2. 在致电super.postStop()之前取消订阅可能是一个更好的主意。