Packages
honeydew
1.0.4
1.5.0
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.0
1.2.8
1.2.7
1.2.6
1.2.5
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
1.0.0-rc7
1.0.0-rc6
1.0.0-rc5
1.0.0-rc4
1.0.0-rc3
1.0.0-rc2
1.0.0-rc1
0.0.11
0.0.10
0.0.9
0.0.8
0.0.7
0.0.6
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
Pluggable local/clusterable job queue focused on safety.
Current section
Files
Jump to
Current section
Files
lib/honeydew/worker_supervisor.ex
defmodule Honeydew.WorkerSupervisor do
alias Honeydew.Worker
def start_link(queue, module, args, num_workers, init_retry_secs, shutdown) do
import Supervisor.Spec
children = [worker(Worker, [queue, module, args, init_retry_secs], restart: :transient, shutdown: shutdown)]
opts = [strategy: :simple_one_for_one,
name: Honeydew.supervisor(queue, :worker),
max_restarts: num_workers,
max_seconds: init_retry_secs]
{:ok, supervisor} = Supervisor.start_link(children, opts)
start_children(supervisor, num_workers)
{:ok, supervisor}
end
defp start_children(_supervisor, 0), do: :noop
defp start_children(supervisor, num) do
Supervisor.start_child(supervisor, [])
start_children(supervisor, num-1)
end
end