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


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 \\ [])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。