Akka:如何使用 Scala 向加入路由器的参与者广播消息

Akka: How to broadcast messages to actors joined in a router using scala

在我的应用程序中,我想每 2 秒向 Worker 的所有 actors 实例广播一个时间单位。时间单位由master发给所有worker。
我正在尝试通过主要演员向所有工人发送广播消息,但它对我不起作用。我在这里附上我的测试代码。

行存在编译错误
router ! Broadcast("any message") 
"Error: value is not a member of `akka.routing.Router`.  

即使我将路由器定义为 akka.routing.Router 变量,谁能告诉我这里的问题是什么。另外,如何每 2 秒广播一次 time_unit 消息? 通过路由器向本地参与者广播消息在逻辑上是否被接受?
我可以向应用程序中定义的具有不同类型的每个参与者广播消息,而不指定其类型,甚至不加入特定的路由器吗?

import akka.actor._
import akka.routing.{ ActorRefRoutee, RoundRobinRoutingLogic, Router }
import akka.routing.Broadcast
import akka.routing.RouterActor

object Messages{
 object Work
 object Terminated
 object Time_Unit
}

object MainRouterDriver extends App {
  import Messages._

  val system = ActorSystem("HelloSystem")
  val routingMaster = system.actorOf(Props[Master], name = "helloactor")
  routingMaster ! Work

}

class Worker extends Actor{
  def receive = {
    case _ =>
        println("Hi I am a Worker")
  }
}

class Master extends Actor {
  import Messages._
  var router = {
    val routees = Vector.fill(5) {
      val r = context.actorOf(Props[Worker])
      context watch r
      ActorRefRoutee(r)
    }
    akka.routing.Router(RoundRobinRoutingLogic(), routees)
  }
  def receive = {
    case Work =>
            router ! Broadcast(Time_Unit) 

  }
    }

您可以使用

router.route(msg, sender())

一定有用!看看