Merge branch 'streamer-refactoring' into 'develop'
[akkoma] / lib / pleroma / web / streamer / supervisor.ex
1 defmodule Pleroma.Web.Streamer.Supervisor do
2 use Supervisor
3
4 def start_link(opts) do
5 Supervisor.start_link(__MODULE__, opts, name: __MODULE__)
6 end
7
8 def init(args) do
9 children = [
10 {Pleroma.Web.Streamer.State, args},
11 {Pleroma.Web.Streamer.Ping, args},
12 :poolboy.child_spec(:streamer_worker, poolboy_config())
13 ]
14
15 opts = [strategy: :one_for_one, name: Pleroma.Web.Streamer.Supervisor]
16 Supervisor.init(children, opts)
17 end
18
19 defp poolboy_config do
20 opts =
21 Pleroma.Config.get(:streamer,
22 workers: 3,
23 overflow_workers: 2
24 )
25
26 [
27 {:name, {:local, :streamer_worker}},
28 {:worker_module, Pleroma.Web.Streamer.Worker},
29 {:size, opts[:workers]},
30 {:max_overflow, opts[:overflow_workers]}
31 ]
32 end
33 end