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 主管
崩溃
假设主管有一个 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 主管
崩溃