當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。