我如何等待Akka.Net中的所有工作完成?

Dam*_*ian 10 akka.net

我已成功将工作发送到演员池来执行我的工作,但现在我想对所有工作人员返回的结果进行一些汇总.我怎么知道每个人都完成了?

我提出的最好的方法是维护一组请求ID并等待该集合变为零,但这似乎不够优雅.

And*_*ewS 10

通常,您希望使用我们称之为"Commander"的模式.从本质上讲,你有一个有状态的演员(Commander负责)启动和监控任务.然后,您可以将整个actor池中的实际工作分配出来,并让它们在Commander完成时向其报告.然后,指挥官可以通过计算# completions/ 来跟踪作业的进度size of worker pool.

这样,工作人员可以在工作时独立监控和重新启动,但所有宝贵的任务级状态和信息都存在于Commander中(这称为"错误内核模式")

您可以在Akka.NET可伸缩webcrawler演示中看到这样的示例.