Erlang 主管:simple_one_for_one 和 one_for_one 重启策略的区别
Erlang supervisor: difference between simple_one_for_one and one_for_one restart strategies
simple_one_for_one
和 one_for_one
重启策略有什么区别?什么时候需要偏爱一个?
让supervisor用S
表示,workers用W
表示。
如果S
在one_for_one
重启策略下监督W1
、W2
、W3
,并且W
中的任何一个死亡,仅此W
重新启动。
simple_one_for_one
重启策略与one_for_one
相同。这意味着如果一个 W
死了,那么 W
就会重新启动。唯一的区别是当 S
开始时,它没有任何 W
s.
W
通过调用supervisor:start_child/2
.
动态添加
When need to prefer one over another?
simple_one_for_one
— 您需要 W
来为每个请求提供服务;例如:身份验证协议
one_for_one
— 在整个应用程序生命周期中,无论如何都需要专用的 W
进程。
simple_one_for_one
和 one_for_one
重启策略有什么区别?什么时候需要偏爱一个?
让supervisor用S
表示,workers用W
表示。
如果S
在one_for_one
重启策略下监督W1
、W2
、W3
,并且W
中的任何一个死亡,仅此W
重新启动。
simple_one_for_one
重启策略与one_for_one
相同。这意味着如果一个 W
死了,那么 W
就会重新启动。唯一的区别是当 S
开始时,它没有任何 W
s.
W
通过调用supervisor:start_child/2
.
When need to prefer one over another?
simple_one_for_one
— 您需要W
来为每个请求提供服务;例如:身份验证协议one_for_one
— 在整个应用程序生命周期中,无论如何都需要专用的W
进程。