erlang 监控树

在Erlang/OTP中有一个基本概念叫 监督树。这是一种建立在 督程佣程思想上的进程结构化模型。
  • 佣程(worker)是进行计算的进程,也就是说,它们进行实际的工作。
  • 督程(supervisor)是监视工作者行为的进程。监督者可以重启工作者如果出现了什么问题.
  • 监督树是一种将代码分成监督者和工作者的层次安排,这样才能设计和编写可容错的软件。
http://erlang.shiningray.cn/otp-design-principles/_images/sup6.gif

方框提供监督,圆圈是工作者。

一, 基本概念

(1)one_for_one  监控树。 在one_for_one 监控方式下,如果一个进程失效,它的监控进程就会重新启动它。

(2)all_for_one 监控树。 在all_for_one  监控树下, 如果一个进程失效,所有的工作进程都会被终止(通过调用回调模块的terminate/2函数)。 

然后所有的工作进程又诚信启动。

二, 表示方法

  监控树通过下面这种形式的函数来表述:

init(...) ->

{ok, {RestartStrategy, MaxRestarts, Time},  [Worker1, Worker2, ...]}.

这里的RestartStrategy 可以使 one_for_one 活着 all_for_one. MaxRestarts 和 Time, 

设定了一个重启频率,如果一个监控进程在Time 时间内执行了超过MaxRestarts次重启,那么监控进程

会终止所有的工作进程,然后自己退出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值