lib/baz/sinks/supervisor.ex
defmodule Baz.Sinks.Supervisor do
use Supervisor
@spec start_link(term) :: Supervisor.on_start()
def start_link(init_arg) do
Supervisor.start_link(__MODULE__, init_arg, name: __MODULE__)
end
@impl true
def init(_init_arg) do
children = [
:poolboy.child_spec(:worker, sink_worker_pool_config())
]
Supervisor.init(children, strategy: :one_for_one)
end
defp sink_worker_pool_config do
[
name: {:local, :sink_worker},
worker_module: Baz.Sinks.Worker,
size: 5,
max_overflow: 2
]
end
end