【问题标题】:Erlang supervisor: difference between simple_one_for_one and one_for_one restart strategiesErlang supervisor:simple_one_for_one 和 one_for_one 重启策略的区别
【发布时间】:2018-06-02 10:21:10
【问题描述】:

simple_one_for_oneone_for_one 重启策略有什么区别?什么时候需要一个胜过另一个?

【问题讨论】:

  • 一个简单的选择它们的方法:当工人相同时,他们只是为相同的事情使用 diff-arg,使用 simple_one_for_one。否则,使用 one_for_one

标签: erlang erlang-otp


【解决方案1】:

supervisorS表示,workersW表示。

如果Sone_for_one重启策略下监督W1W2W3,并且W中的任何一个死掉,只有W被重启。

simple_one_for_one重启策略与one_for_one相同。这意味着如果一个W 死了,那么W 会重新启动。唯一的区别是S 启动时,它没有任何Ws。

Ws 是通过调用supervisor:start_child/2 动态添加的。

什么时候需要比另一个更喜欢一个?

  • simple_one_for_one — 您需要 W 来为每个请求提供服务;例如:身份验证协议

  • one_for_one — 在整个应用程序生命周期中,无论如何,您都需要专用的 W 进程。

【讨论】:

    猜你喜欢
    • 2012-04-03
    • 2017-03-24
    • 2020-08-26
    • 2011-02-27
    • 2012-11-06
    • 2019-04-07
    • 1970-01-01
    • 2019-04-17
    • 2013-08-09
    相关资源
    最近更新 更多