阿卡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.confapplication.conf的问题更多的是设置的性质之一。如果你的图书馆想要从配置中获得它自己的设置,那么默认值应该为reference.conf;那就是设计概念以及为什么这个文件总是被隐式合并的原因。默认值应该只在该文件中,而不是在代码中。

+0

它是我构建路径的一部分,因为我可以通过系统资源访问它。例如,println(getClass()。getResource(“/ reference.conf”))正确地列出了该文件。 我向src/test/resources添加了一个重复的文件,但问题依然存在。 我也试过把文件改成akka {actor {balancing-dispatcher ...}}。 我找不到一个示例.conf文件与akka示例中的自定义调度程序,是否有某处我可以下载一个示例项目,做到这一点? 请注意,我也产生了演员的集合。 –

+0

我可以建议你发布akka-user ML上的所有细节吗?您似乎有一些特殊的问题,在*上进行调试时很尴尬。 –