【问题标题】:restart=>transient vs permanent for erlang supervisor重新启动 => erlang 主管的瞬态与永久
【发布时间】:2021-01-30 11:03:21
【问题描述】:

我有一个 3 级监督树结构,其中顶层是一个监督者,它产生第二级监督者,后者产生工人。 二级主管和工人都有一个瞬态重启策略。 现在我的工人崩溃并重新启动 max_restart 次。此时,我希望主管崩溃 max_restart 次数,然后顶级主管崩溃。但是我的二级主管死了,一级主管没有重新启动它。二级主管崩溃了这个日志

Context:    shutdown
Reason:     reached_max_restart_intensity

这是否被认为是“正常”关闭,因此主管没有重新启动,因为我使用的是瞬态重启策略?如果我们希望中级主管重新启动,是否应该始终使用 restart=permanent ?

【问题讨论】:

    标签: erlang erlang-supervisor


    【解决方案1】:

    来自supervisor documentation

    只有在异常终止时才会重新启动瞬态子进程,也就是说,除了正常、关闭或 {shutdown,Term} 之外的其他退出原因。

    由于退出原因是 shutdown,因此您需要使用不同的 restart 策略。

    【讨论】:

      猜你喜欢
      • 2011-06-18
      • 2023-03-16
      • 2012-10-01
      • 2012-04-03
      • 1970-01-01
      • 2017-05-02
      • 2021-03-18
      • 2012-12-14
      • 1970-01-01
      相关资源
      最近更新 更多