gpt4 book ai didi

Erlang 主管 : how to check if all the workers have replied

转载 作者:行者123 更新时间:2023-12-04 06:46:12 26 4
gpt4 key购买 nike

我有一个有 N 个工作进程的主管。像往常一样,主管可以向工作进程发送消息,并且有一个 handle_cast将 worker 的回复发送给主管。

我如何检查所有 N 个 worker 是否都回复了主管?是否可以通过任何类型的事件处理来实现这一点 - 即告诉主管“好的,每个人都已回复”,而不是让主管在某种 ETS 中每秒检查“所有 N 个进程都已回复”状态 child 注册表?

最佳答案

如果您在谈论 OTP supervisor ,不,您不能从它向工作人员发送消息。监督者是一种非常有限的行为,其目的是启动、监视、重新启动和停止进程。没有其他的。

因此,要解决您的特定问题,您必须有一个负责向所有工作人员发送消息的流程。此过程还可以保留处于其状态的所有 worker 的列表,“勾选”(或从列表中删除)已响应的 worker 。您可以使用 PID 列表来实现这一点,并接收来自进程的响应(或者通过使用 erlang:monitor/2 监视进程,如果它们在完成后退出)并查看剩下的人。

关于Erlang 主管 : how to check if all the workers have replied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7482123/

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