最大重启频率

督程有一个内置的机制可以限制在给定时间间隔内可以发生的重启次数。它由两个参数 MaxRMaxT 的值决定,这两个参数在由回调函数 init 返回的启动规格中。

  1. init(...) ->
  2. {ok, {{RestartStrategy, MaxR, MaxT},
  3. [ChildSpec, ...]}}.

如果在最近的 MaxT 秒内发生的重启次数超过了 MaxR 次,那么督程会终止所有的子进程,然后结束自己。

当督程终止了,那么更高一级的督程会采取一些措施。要么是重启终止了的督程,要么终止自己。

这种重启机制的目的是防止出现一个进程反复因为同一个原因死掉又只知道反复重启的情况。