3

对于一个容错系统, Elixir(Erlang)的Supervision树提供了4种策略, 名称分别为: :one_for_one, :one_for_all, :rest_for_one, :simple_one_for_one.

下面是每一种策略的可视化效果

策略 :one_for_one

图片描述

策略 :one_for_all

图片描述

策略 :rest_for_one

图片描述

策略 :simple_one_for_one

:one_for_one相同, 不同的是它需要实现 Supervision.Spec, 并且在子进程规范里面只能有一种子进程. 也就是说这类 Supervisor 创建的子进程都是同一种类型的子进程.


developerworks
1.7k 声望266 粉丝