如何限制特定类型的演员数量?

时间:2015-09-17 16:33:35

标签: scala akka

我创建了一个演员来向聊天服务器发送消息。但是,聊天服务器仅允许每个用户5个连接。如果我敲击我的scala服务器,我会收到错误消息,因为我的聊天客户端已断开连接。

那么如何配置akka以便我的XmppSenderActor仅使用最多5个线程?我不想限制actor系统的其余部分,只限制此对象(在路径/XmppSenderActor/)。

我正在尝试此配置,因为我认为这是我需要配置的调度程序,但我不确定:

akka.actor.deployment {
  /XmppSenderActor {
    dispatcher = xmpp-dispatcher
  }

  xmpp-dispatcher {
    fork-join-executor.parallelism-min = 2
    fork-join-executor.parallelism-max = 3
  }
}

这给了我一个错误:akka.ConfigurationException: Dispatcher [xmpp-dispatcher] not configured for path akka://sangria-server/user/XmppSenderActor

1 个答案:

答案 0 :(得分:3)

我可能会尝试配置路由器。

http://doc.akka.io/docs/akka/2.0/scala/routing.html

调度程序似乎处理向收件箱发送邮件而不是实际的数字或Actor目标。

特别是这种配置可能对您有用:

akka.actor.deployment {
  /router {
    router = round-robin
    nr-of-instances = 5
  }
}

nr-of-instances将从开始创造5个孩子,因此满足您的需求。 您可能需要找到正确的路由器实现。