阿卡BalancingDispatcher配置
问题描述:
我在的src/main /资源看起来像这样创建的文件application.conf:阿卡BalancingDispatcher配置
balancing-dispatcher {
type = BalancingDispatcher
executor = "thread-pool-executor"
}
没有什么别的的文件中。
在(通过使用阿卡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.
我已经尝试了这两种方法到目前为止,但都没有工作。
任何想法?
答
由于您的application.conf
未找到,我只能假定src/main/resources
不是您的构建路径的一部分(如果不知道您用于构建哪种工具,则无法进一步评论)。
一件小事:为什么在那里使用"thread-pool-executor"
?我们发现默认"fork-join-executor"
可以更好地缩放。
您对一条线索的评论表明您只创建一名演员;使用BalancingDispatcher
不会自动创建更多演员,您必须告诉Akka以某种方式执行此操作(例如,手动或通过Router
创建同一演员的多个实例)。
reference.conf
与application.conf
的问题更多的是设置的性质之一。如果你的图书馆想要从配置中获得它自己的设置,那么默认值应该为reference.conf
;那就是设计概念以及为什么这个文件总是被隐式合并的原因。默认值应该只在该文件中,而不是在代码中。
它是我构建路径的一部分,因为我可以通过系统资源访问它。例如,println(getClass()。getResource(“/ reference.conf”))正确地列出了该文件。 我向src/test/resources添加了一个重复的文件,但问题依然存在。 我也试过把文件改成akka {actor {balancing-dispatcher ...}}。 我找不到一个示例.conf文件与akka示例中的自定义调度程序,是否有某处我可以下载一个示例项目,做到这一点? 请注意,我也产生了演员的集合。 –
我可以建议你发布akka-user ML上的所有细节吗?您似乎有一些特殊的问题,在*上进行调试时很尴尬。 –