Current section

Files

Jump to
exq lib exq worker supervisor.ex
Raw

lib/exq/worker/supervisor.ex

defmodule Exq.Worker.Supervisor do
@moduledoc """
Supervisor for Exq Worker.
"""
import Supervisor.Spec
def start_link(opts) do
Supervisor.start_link(__MODULE__, opts, name: supervisor_name(opts[:name]))
end
def init(opts) do
shutdown_timeout = Keyword.get(opts, :shutdown_timeout)
children = [
worker(Exq.Worker.Server, [], restart: :temporary, shutdown: shutdown_timeout)
]
supervise(children, strategy: :simple_one_for_one)
end
def supervisor_name(name) do
name = name || Exq.Support.Config.get(:name)
"#{name}.Worker.Sup" |> String.to_atom()
end
def start_child(sup, args) do
Supervisor.start_child(sup, args)
end
def workers(sup) do
Supervisor.which_children(sup)
end
end