我正在尝试使用Akka 2.4中的RoundRobinRoutingLogic来完成Jonas Boner的Pi计算示例。文档仅显示如何创建路由器,然后使用路由将消息发送回发件人。这只会产生一长串的动物。
installer.UILevel = MsiUILevel.msiUILevelNone;
我定义了一个正在创建的Worker actor,并将其添加到workerRouter的路由中。对于Calculate案例,我如何向RoundRobinRoutingLogic接下来选择的Work发送Work消息?
答案 0 :(得分:1)
问题是您将sender()
作为结果的目标传递给基础工作者ActorRef
,而不是将ref发送给Master。如果您修改以下行,它应该解决您看到的问题:
//note the "self" instead of "sender()"
case Calculate => for (i <- 0 until numOfMessages) workerRouter.route(Work(i * numOfElements, numOfElements), self)
另外,我会&#34;分手&#34;你的代码有点如下:
def sendWork(i : Int) =
workerRouter.route(Work(i * numOfElements, numOfElements), self)
def receive = {
case Calculate => (1 until numOfMessages) foreach sendWork
...
}