Packages
honeydew
1.0.3
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/queue_supervisor.ex
defmodule Honeydew.QueueSupervisor do
def start_link(queue, module, args, num_queues, dispatcher, failure_mode, success_mode) do
import Supervisor.Spec
children = [
worker(module, [queue, args, dispatcher, failure_mode, success_mode])
]
opts = [strategy: :simple_one_for_one,
name: Honeydew.supervisor(queue, :queue),
# what would be sane settings here?
# if a queue dies because it's trying to connect to a remote host,
# should we delay the restart like with workers?
max_restarts: num_queues,
max_seconds: 5]
{:ok, supervisor} = Supervisor.start_link(children, opts)
# start up workers
Enum.each(1..num_queues, fn _ ->
{:ok, _} = Supervisor.start_child(supervisor, [])
end)
{:ok, supervisor}
end
end