Packages
honeydew
0.0.11
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/supervisor.ex
defmodule Honeydew.Supervisor do
def start_link(pool_name, worker_module, worker_init_args, pool_opts \\ []) do
import Supervisor.Spec
max_failures = pool_opts[:max_failures] || 3
failure_delay_secs = pool_opts[:failure_delay_secs] || 30
num_workers = pool_opts[:workers] || 10
init_retry_secs = pool_opts[:init_retry_secs] || 5
work_queue = Honeydew.work_queue_name(worker_module, pool_name)
children = [
worker(Honeydew.WorkQueue, [work_queue, max_failures, failure_delay_secs], id: :work_queue),
supervisor(Honeydew.WorkerSupervisor, [pool_name, worker_module, worker_init_args, init_retry_secs, num_workers], id: :worker_supervisor)
]
Supervisor.start_link(children, strategy: :one_for_one)
end
end