我正在使用Akka 2.2-RC1,但无法使Akka从application.conf加载调度程序配置:
my-dispatcher {
type = PinnedDispatcher
executor = "thread-pool-executor"
}
akka.actor.deployment {
/test {
dispatcher = my-dispatcher
}
}
当从代码中实例化时,例如
val test = system.actorOf(Props[Test], "test")
根据记录,它仍在使用akka.actor.default-dispatcher
。
当我将.withDispatcher("my-dispatcher")
添加到Props时,一切正常工作,并且使用了my-dispatcher
。但我不喜欢为所有我的actors都添加 .withDispatcher(...)
的想法...
有人知道问题出在哪里吗?我觉得actor路径可能是错误的,但是apllication.conf路由配置正常工作(除了自定义routee dispatcher)。
经过一些测试,我发现这种效果是由RemoteActorRefProvider
的使用引起的。一旦我禁用它并改为默认值
akka.actor.provider = "akka.actor.LocalActorRefProvider"
调度程序已经从配置文件中正确配置。
我猜测启用远程访问后,Akka会在其他地方查找演员调度器的配置,或者远程引用具有不同的逻辑路径?
akka.remote.RemoteActorRefProvider
引起的 - 当禁用它时,一切都正常工作。 - Seigert