Erlang 如何在动态监控下确定重启策略

Erlang 如何在动态监控下确定重启策略,erlang,otp,Erlang,Otp,如果静态启动子规范: init(...) -> {ok, {{RestartStrategy, MaxR, MaxT}, [ChildSpec, ...]}}. 但如果我动态启动子规范: start_child(SupRef, ChildSpec) -> startchild_ret() 如何确定RestartStrategy、MaxR和MaxT?您无法在start\u child或其他任何地方直接确定RestartStrategy、MaxR和MaxT

如果静态启动子规范:

init(...) ->
    {ok, {{RestartStrategy, MaxR, MaxT},
          [ChildSpec, ...]}}.
但如果我动态启动子规范:

start_child(SupRef, ChildSpec) -> startchild_ret()

如何确定RestartStrategy、MaxR和MaxT?

您无法在start\u child或其他任何地方直接确定RestartStrategy、MaxR和MaxT。这些是主管的属性(不是子属性),您只能在主管的init/1回调中确定它们。

鉴于
RestartStrategy
是主管的属性,而不是其子属性,您可以向主管树添加额外的层,并将多个主管作为根主管的子级。每个副主管将指定不同的重新启动策略。然后将子项添加到相应的主管

来自的图像