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


Elixir Task.Supervisor.start_child用法及代碼示例


Elixir語言中 Task.Supervisor.start_child 相關用法介紹如下。

用法:

start_child(supervisor, fun, options \\ [])
@spec start_child(Supervisor.supervisor(), (() -> any()), keyword()) ::
  DynamicSupervisor.on_start_child()

作為給定 supervisor 的子項啟動任務。

Task.Supervisor.start_child(MyTaskSupervisor, fn ->
  IO.puts "I am running in a task"
end)

請注意,生成的進程未鏈接到調用者,而僅鏈接到主管。如果任務需要執行side-effects(如 I/O),並且您對其結果不感興趣,或者它是否成功完成,此命令很有用。

選項

  • :restart - 重啟策略,可能是:temporary(默認)、:transient:permanent:temporary 表示任務永遠不會重新啟動,:transient 表示如果退出不是 :normal:shutdown{:shutdown, reason} 則重新啟動。 :permanent 重啟策略意味著它總是被重啟。

  • :shutdown - :brutal_kill 如果必須在關閉時直接終止任務或指示超時值的整數,默認為 5000 毫秒。

相關用法


注:本文由純淨天空篩選整理自elixir-lang.org大神的英文原創作品 Task.Supervisor.start_child(supervisor, fun, options \\ [])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。