Playframework 2.0 Akka actor外部化部署配置
我正在使用Playframework 2.0 Akka actor外部化部署配置,playframework-2.0,akka,Playframework 2.0,Akka,我正在使用 lazy val ref = Akka.system.actorOf(Props[BackgroundProcessorActor], name = "background-processor") 我有一个指定以下配置的属性文件 application { akka { actor { default-dispatcher = { fork-join-executor { parallelism-factor = 1.0
lazy val ref = Akka.system.actorOf(Props[BackgroundProcessorActor], name = "background-processor")
我有一个指定以下配置的属性文件
application {
akka {
actor {
default-dispatcher = {
fork-join-executor {
parallelism-factor = 1.0
}
}
background-dispatcher = {
fork-join-executor {
parallelism-factor = 1.0
}
}
deployment = {
/background-processor = {
dispatcher = background-dispatcher
router = round-robin
nr-of-instances = 128
}
/solr_asset_updater = {
dispatcher = default-dispatcher
}
/solr_asset_log_updater = {
dispatcher = default-dispatcher
}
/change_queue_processor = {
dispatcher = default-dispatcher
}
}
}
}
}
我花了一些时间阅读文档和游戏的源代码。但是,background processor
的部署设置,特别是router=round-robin
和nr of instances=128
的部署设置似乎不起作用
有必要具体说明吗
lazy val ref = Akka.system.actorOf(Props[BackgroundProcessorActor].withRouter(FromConfig()), name = "background-processor")
这在我看来是多余的。我遗漏了什么?该剧Akka插件中的演员系统名为
应用程序
,但使用顶级配置(不是子配置)。您可以通过设置日志级别轻松地测试这一点
akka {
loglevel = "DEBUG"
actor {
...
}
}
在回答问题时 是否需要指定(FromConfig) 来自akka文档的答案 另一方面,是否创建路由器的决定必须在代码中做出,也就是说,您不能仅通过外部配置就将某个东西设置为路由器(详见下文)
实际上,要求在代码中使用withRouter并指定路由器选项,或者使用FromConfig从配置中指定路由器选项,这是正确的,但是寻址并没有解决问题,因为FromConfig是必需的。你确实把我引向了正确的方向,但其余的(例如dispatcher)应该会自动工作。
lazy val ref = Akka.system.actorOf(Props[BackgroundProcessorActor].withRouter(FromConfig()), name = "background-processor")