gpt4 book ai didi

erlang - 在 Erlang 中,是否可以将正在运行的进程发送到不同的节点?

转载 作者:行者123 更新时间:2023-12-03 21:45:13 25 4
gpt4 key购买 nike

我一直在研究移动代理,想知道是否可以将正在运行的进程发送到 erlang 中的另一个节点。我知道可以向另一个节点上的进程发送消息。我知道可以在集群中的所有节点上加载模块。是否可以将可能在特定节点上处于某种状态的进程移动到另一个节点并恢复它的状态。也就是说,erlang 是否提供了强大的移动性?或者是否有可能在 erlang 中提供强大的移动性?

最佳答案

是的,这是可能的,但没有“将进程移动到节点”调用。但是,如果进程构建了迁移功能,您当然可以通过将进程的功能及其状态发送到另一个节点并在那里安排生成来实现。要正确识别进程,您需要使用全局进程注册表或 gproc,因为进程会更改 pid。

还有其他注意事项:该进程可能正在使用一个 ETS 表,其数据不存在于另一个节点上,或者它可能在进程字典中存储了一些内容(想到来自 random 模块的状态)。

Erlang 的普遍共识是进程不会在机器之间移动。相反,如果节点死亡,要么安排接管节点之间的应用程序。或者用于系统的分发,因此数据已经分发到另一台机器。无论如何,在发生错误时使状态持久化的主要问题仍然存在,移动性与否 - 分发是解决持久性问题的好工具。

关于erlang - 在 Erlang 中,是否可以将正在运行的进程发送到不同的节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5135598/

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