Erlang/OTP 监督者(Supervisor)

Erlang/OTP 监督者(Supervisor)的作用是负责其子进程的启动,停止和监视。监督者的基本思路是,保持其子进程能正常运行,并在必要时重新启动子进程。

一、Erlang/OTP Supervisor 基本参数

Erlang/OTP Supervisor的基本参数有进程策略,进程id,进程启动函数,进程重启,进程关闭,进程类型,进程模块。

-module(test_sup).  
-behaviour(supervisor).  
-export([start_link/1, init/1]).  

start_link(_) ->  
    io:format("test sup start link~n"),  
    supervisor:start_link({local, ?MODULE}, ?MODULE, []).  

init([]) ->
  {ok,
    {
  {one_for_one, 1, 60},           % Strategy = {How, Max, Within}
       [{ test_handler_worker,       % Id       = internal id
          {test_server, start, []},  % StartFun = {M, F, A}
          permanent,                 % Restart  = permanent | transient | temporary
          2000,                      % Shutdown = brutal_kill | int() >= 0 | infinity
          worker,                    % Type     = worker | supervisor
          [test_server]              % Modules  = [Module] | dynamic
          }]
     }
   }.

1、进程策略

Strategy = {How, Max, Within}

意思是在多长时间内(Within)最多允许重启了几次(Max),如何重启(HOW)。Within 和 Max 的设定意义在于限制最大重启频率,这是为了避免反复重启进入死循环。Within 以秒为单位。Max为0表示不重启。

one_for_one 如果子进程终止,只有这个进程会被重启
one_for_all
  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值