当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Elixir Supervisor.init用法及代码示例


Elixir语言中 Supervisor.init 相关用法介绍如下。

用法:

init(children, options)
(从 1.5.0 开始)
@spec init([:supervisor.child_spec() | {module(), term()} | module()], [init_option()]) ::
  {:ok, tuple()}

接收要初始化的 children 列表和一组 options

这通常在基于模块的监督者的 init/1 回调结束时调用。有关更多信息,请参阅模块文档中的“基于模块的监督者”和“start_link/2、init/2 和策略”部分。

此函数返回一个包含主管标志和子规范的元组。

例子

def init(_init_arg) do
  children = [
    {Stack, [:hello]}
  ]

  Supervisor.init(children, strategy: :one_for_one)
end

选项

  • :strategy - 监督策略选项。它可以是 :one_for_one:rest_for_one:one_for_all

  • :max_restarts - 在一个时间范围内允许的最大重启次数。默认为 3

  • :max_seconds - :max_restarts 适用的时间范围(以秒为单位)。默认为 5

:strategy 选项是必需的,默认情况下最多允许在 5 秒内重新启动 3 次。查看 Supervisor 模块以获取可用策略的详细说明。

相关用法


注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Supervisor.init(children, options)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。