View Source Owl.Task (Owl v0.9.0)

Run task using internal supervision tree.

Summary

Functions

Runs a function as a task under supervision tree.

Functions

@spec run((() -> result)) :: {:ok, result} | {:exit, term()} when result: any()

Runs a function as a task under supervision tree.

This is usefull when you need graceful shutdown in simple scripts, where Owl is installed using Mix.install/2.

Example

# content of ping.exs file, run as `elixir --no-halt ping.exs`
Mix.install([:owl])

Owl.Task.run(fn ->
  Owl.System.daemon_cmd("ping", ["8.8.8.8"], fn ->
    Process.sleep(3000)
    2 + 2
  end)
end

System.stop()