Erlang:supervisor(3),添加子进程
在哪里可以找到有关如何向现有主管添加动态子进程的示例(simple_one_for_one
重新启动策略)?
Where can I find example on how to add dynamic child processes to an existing supervisor (simple_one_for_one
restart strategy) ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我做了一些研究,以下是我所拥有的。
首先,这是一个监督者的回调模块示例:
这是一个子进程的回调模块,它将动态添加到监督树中:
这就是我们通常启动监督者的方式:
现在让我们开始我们的第一个子进程:
您可以动态启动子进程;让我们启动另一个子进程:
您可能会看到我们的进程确实启动了(注意最后两个):
现在让我们让我们的第一个子进程做一些事情:
到目前为止,一切都很好。现在我们将让我们的第一个子进程评估一些错误的代码:
在报告中,您可能会看到除以零导致异常并且进程被终止。但主管会处理它并立即启动另一个子进程(注意最后一行)。
我们可以检查以确保我们之前启动的另一个子进程仍然存在(注意
<0.37.0>
):我们甚至可以让它为我们做一些事情:
以下是 Erlang 手册您想要阅读的页面:
I did some research, and below is what I have.
First, this is a sample callback module of a supervisor:
And this is a callback module of a child which will be added to the suprervision tree dynamically:
This is how we usually start the supervisor:
Now let's start our first child process:
You can dynamically start child processes; let's start another child:
You may see that our processes did start (note the last two):
Now let's make our first child process do something:
So far, so good. Now we'll make our first child to evaluate some bad code:
In the report, you may see that the division by zero caused an exception and the process was terminated. But the supervisor takes care of it and immediately starts another child process (note the last line).
We can check to make sure that the other child process we started previously is still alive (note
<0.37.0>
):We can even make it do something for us:
The following are the Erlang manual pages you'll want to read:
在 主管行为 部分中。 erlang.org/doc/design_principles/users_guide.html" rel="noreferrer">OTP 设计原则是 Erlang 文档的一部分,其中有一个如何使用
simple_one_for_one
和动态子项的示例。我推荐整个设计原则部分,因为它提供了对 OTP 工作原理的深入了解。In Supervisor Behaviour section of the OTP Design Principles part of the Erlang docs there is an example of how to use
simple_one_for_one
and dynamic children. I recommend the whole Design Principles part as it provides much insight into how OTP works.