Packages
exq
0.17.0
0.23.0
0.22.0
0.21.0
0.20.0
0.19.0
0.18.0
0.17.0
0.16.2
0.16.1
0.16.0
0.15.0
0.14.0
0.13.5
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.12.2
0.12.1
0.12.0
0.11.0
0.10.1
0.10.0
0.9.1
0.9.0
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.3
0.7.2
0.7.1
0.7.0
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.0
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
0.0.2
Exq is a job processing library compatible with Resque / Sidekiq for the Elixir language.
Current section
Files
Jump to
Current section
Files
lib/exq/worker/supervisor.ex
defmodule Exq.Worker.Supervisor do
@moduledoc """
Supervisor for Exq Worker.
"""
use DynamicSupervisor
def start_link(opts) do
DynamicSupervisor.start_link(__MODULE__, [], name: supervisor_name(opts[:name]))
end
def init([]) do
DynamicSupervisor.init(strategy: :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, opts) do
shutdown_timeout = Keyword.get(opts, :shutdown_timeout)
spec = %{
id: Exq.Worker.Server,
start: {Exq.Worker.Server, :start_link, args},
restart: :temporary,
shutdown: shutdown_timeout
}
DynamicSupervisor.start_child(sup, spec)
end
def workers(sup) do
DynamicSupervisor.which_children(sup)
end
def workers_count(sup) do
DynamicSupervisor.count_children(sup)
|> Map.get(:active)
end
end