logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma

supervisor.ex (949B)


      1 # Pleroma: A lightweight social networking server
      2 # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
      3 # SPDX-License-Identifier: AGPL-3.0-only
      4 
      5 defmodule Pleroma.Web.Streamer.Supervisor do
      6   use Supervisor
      7 
      8   def start_link(opts) do
      9     Supervisor.start_link(__MODULE__, opts, name: __MODULE__)
     10   end
     11 
     12   def init(args) do
     13     children = [
     14       {Pleroma.Web.Streamer.State, args},
     15       {Pleroma.Web.Streamer.Ping, args},
     16       :poolboy.child_spec(:streamer_worker, poolboy_config())
     17     ]
     18 
     19     opts = [strategy: :one_for_one, name: Pleroma.Web.Streamer.Supervisor]
     20     Supervisor.init(children, opts)
     21   end
     22 
     23   defp poolboy_config do
     24     opts =
     25       Pleroma.Config.get(:streamer,
     26         workers: 3,
     27         overflow_workers: 2
     28       )
     29 
     30     [
     31       {:name, {:local, :streamer_worker}},
     32       {:worker_module, Pleroma.Web.Streamer.Worker},
     33       {:size, opts[:workers]},
     34       {:max_overflow, opts[:overflow_workers]}
     35     ]
     36   end
     37 end