1 defmodule Pleroma.Plugs.RateLimiter.LimiterSupervisor do
6 def start_link(init_arg) do
7 DynamicSupervisor.start_link(__MODULE__, init_arg, name: __MODULE__)
10 def add_or_return_limiter(limiter_name, expiration) do
12 DynamicSupervisor.start_child(
15 id: String.to_atom("rl_#{limiter_name}"),
24 interval: check_interval(expiration),
33 {:ok, _pid} = result -> result
34 {:error, {:already_started, pid}} -> {:ok, pid}
40 def init(_init_arg) do
41 DynamicSupervisor.init(strategy: :one_for_one)
44 defp check_interval(exp) do