gpt4 book ai didi

scala - 如何检测 Akka Actor 何时完成?

转载 作者:行者123 更新时间:2023-12-01 03:41:19 26 4
gpt4 key购买 nike

我正在尝试实现一个简单的应用程序,我将不同的任务分配给 Akka Actor 并让他们独立计算结果。问题是如何检测他们何时都完成了分配的工作(成功或失败计数),因为我需要从他们那里获得计算结果。什么是典型方法?

我尝试使用 system.shutdown() 等待所有 actor 都完成,但是通过此命令,actor 已经终止并且不响应任何需要的消息以检索计算结果。

我想到的另一件事是从 worker Actor 向他们的 parent 发送类似 JobCompleted 的消息。然后我可以计算我收到多少此类消息,如果计数等于产生的 worker Actor ,我们就知道他们都已经完成了。虽然我不知道当 Actor 内部发生故障时会发生什么。此外,这种方法似乎太笨拙了。

最佳答案

可能的重复:

Knowing when akka actors are finished

Akka tracking when the actors finished

最简单的开箱即用方式:使用询问模式并等待所有返回的 future 。在 for 块中或通过 Future.sequence
(更多信息参见官方文档)

此外,如果您需要在任务完成后立即终止 - 有许多不同的方法。例如,请参阅此 http://letitcrash.com/post/30165507578/shutdown-patterns-in-akka-2

关于scala - 如何检测 Akka Actor 何时完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30531614/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com