如何限制特定类型的参与者数量?
How to limit the number of actors of a particular type?
我创建了一个 actor 来向聊天服务器发送消息。但是,聊天服务器只允许每个用户 5 个连接。如果我敲打我的 Scala 服务器,我会收到错误消息,因为我的聊天客户端会断开连接。
那么我如何配置 akka 以便我的 XmppSenderActor
最多只使用 5 个线程?我不想限制演员系统的其余部分,只有这个对象(在路径 /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
我可能会尝试配置路由器。
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 个孩子,从而满足您的需求。
不过,您可能需要找到正确的路由器实现。
我创建了一个 actor 来向聊天服务器发送消息。但是,聊天服务器只允许每个用户 5 个连接。如果我敲打我的 Scala 服务器,我会收到错误消息,因为我的聊天客户端会断开连接。
那么我如何配置 akka 以便我的 XmppSenderActor
最多只使用 5 个线程?我不想限制演员系统的其余部分,只有这个对象(在路径 /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
我可能会尝试配置路由器。
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 个孩子,从而满足您的需求。
不过,您可能需要找到正确的路由器实现。