Current section

Files

Jump to
exq lib exq worker supervisor.ex
Raw

lib/exq/worker/supervisor.ex

defmodule Exq.Worker.Supervisor do
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
unless name, do: 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
end