我已成功将工作发送到演员池来执行我的工作,但现在我想对所有工作人员返回的结果进行一些汇总.我怎么知道每个人都完成了?
我提出的最好的方法是维护一组请求ID并等待该集合变为零,但这似乎不够优雅.
And*_*ewS 10
通常,您希望使用我们称之为"Commander"的模式.从本质上讲,你有一个有状态的演员(Commander负责)启动和监控任务.然后,您可以将整个actor池中的实际工作分配出来,并让它们在Commander完成时向其报告.然后,指挥官可以通过计算# completions/ 来跟踪作业的进度size of worker pool.
这样,工作人员可以在工作时独立监控和重新启动,但所有宝贵的任务级状态和信息都存在于Commander中(这称为"错误内核模式")
您可以在Akka.NET可伸缩webcrawler演示中看到这样的示例.