gpt4 book ai didi

Elixir,测试主管重启策略

转载 作者:行者123 更新时间:2023-12-03 19:55:47 24 4
gpt4 key购买 nike

我正在编写一个带有主管树的 OTP 应用程序。

主监督者监督两个进程,一个 worker QueueAddress 和另一个监督者 QueueManager,策略为 one_for_one
QueueManager 监督一堆小队列,有策略simple_one_for_one ,每次启动一个新的队列时,它的基本信息都会保存到QueueAddress中。

如果一个队列被杀死,它会正确地重新启动。

现在我想测试如果主管 QueueManager 被杀死会发生什么。

但是,如果只是发送一条消息 Process.exit(QueueManager, :normal) , 或 Process.exit(QueueManager, :shutdown)什么也没有发生,QueueManager 的 PID 不会改变,也不会改变受监督的小队列的 PID。

如果我发消息 Process.exit(QueueManager, :kill)整个应用程序失败。

我如何测试,如果 QueueManager 被杀死会发生什么?

在OTP树的图像下面,我要杀Elixir.QueueManager
The OTP tree

最佳答案

这很简单......

如果您想终止由 B 监督的主管 A,您可以执行以下操作:
Supervisor.terminate_child B, A
如果您想让仍由 B 监督的主管 A 起死回生,您可以执行以下操作:
Supervisor.restart_child B, A

关于Elixir,测试主管重启策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33317367/

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