Akka - 消息排队,不经常消费

时间:2016-09-08 17:10:11

标签: akka actor dispatcher

我有一个基于Akka的应用程序,它执行大量工作并通过消息传递报告进度。 "工人"报告他们完成一些工作直到他们的经理"然后,他们为他们提供更多的工作,同时又为他们提供经理"向一个简单地跟踪进度的演员参考发送一条消息(火与忘记)。

"经理"和"工人" all共享一个调度线程池,以及" tracker"演员坐在它自己的小线程池中。我还使用进度的基本模数限制了多少东西被发布到它,所以我只在每次完成20项工作时发送消息。这似乎适用于少量工作 - 比如说几百个。我看到跟踪器actor接收消息并更新其实例变量并响应检索进度数据的请求。

然而,当处理数千项工作时,进度计数会持续一段时间,然后似乎完全停止 - 好像跟踪器演员没有收到任何消息,而且它们都只是填满了它&# 39; s消息队列。是"工人"调度员可能会占用所有资源吗?我认为每个调度员应该能够有规律地向演员发送消息。我已经试过搞乱公平"每个调度程序中的配置,但似乎没有区别。

我重视任何人对此的看法。

1 个答案:

答案 0 :(得分:0)

我最后改变了一些事情并且把#34;经理"进入一个单独的调度员,事情又开始了。通过它运行了109,000个工作没问题。