children 个 supervisor 死后会发生什么?

What happens after all children of a supervisor die?

假设主管有一个 child 由于某种原因不断失败。根据重启策略,它将重启失败的 child 直到达到最大重启次数。 supervisor 达到最大重启次数后会发生什么?

它会自行终止,它的监督者决定是否根据监督者的政策重新启动它。如果它没有主管(它是根),那么它不会重新启动。这就是 supervision trees.

的意义所在

正如 Alexey Romanov 已经回答的那样,监督者也会失败,因此 parent 监督者本身正在执行自己的策略。主管策略必须在 parent 和 child 主管之间保持一致,否则如果与 child 主管相比,parent 主管的重启 MaxTime 设置不正确,则它可能永远不会失败.如果没有主管留下,应用程序本身就会崩溃。如果应用程序 运行 例如作为 windows 服务,则该服务本身可以设置重启策略。

示例:

child supervisor: max restarts 10, max time: 10secs -> child supervisor 如果它自己的 children 在 10secs 内有超过 10 次崩溃

parent 主管:最大重启次数:20,最长时间:5 秒 -> child 主管必须在 5 秒内崩溃 20 次。这也意味着 child 主管的 child 必须在 5 秒内崩溃 > 200 次才能使 parent 主管

崩溃

另请查看以下内容 https://learnyousomeerlang.com/supervisors