我在src / main / resources中创建了一个文件application.conf,如下所示:
balancing-dispatcher {
type = BalancingDispatcher
executor = "thread-pool-executor"
}
文件中没有其他内容。
在创建一个尝试使用调度程序的新Actor(通过我的测试套件使用Akka TestKit)时,我收到以下错误消息:
[WARN] [04/13/2013 21:55:28.007] [default-akka.actor.default-dispatcher-2] [Dispatchers] Dispatcher [balancing-dispatcher] not configured, using default-dispatcher
我的程序然后正确运行,尽管只使用一个线程。
此外,我打算将我的程序打包成一个库。 akka文档说明了这一点:
If you are writing an Akka application, keep you configuration in application.conf at
the root of the class path. If you are writing an Akka-based library, keep its
configuration in reference.conf at the root of the JAR file.
到目前为止,我已尝试过这两种方法,但两种方法都没有效果。
有什么想法吗?
答案 0 :(得分:2)
由于找不到application.conf
,我只能假设src/main/resources
不属于您的构建路径(如果不知道您用于构建哪个工具,则无法进一步评论)。
一件小事:你为什么在那里使用"thread-pool-executor"
?我们发现默认"fork-join-executor"
可以更好地扩展。
你对这一个帖子的评论表明你只创造了一个演员;使用BalancingDispatcher
不能自动创建更多的actor,你必须告诉Akka以某种方式这样做(例如手动或通过Router
创建同一个actor的多个实例)。
reference.conf
与application.conf
的问题更多是设置的本质之一。如果您的库想要从配置中获取自己的设置,那么默认值应该进入reference.conf
;这就是设计概念以及这个文件总是被隐式合并的原因。默认值应该只在那个文件中,而不是在代码中。