analytics / lib /plausible /session /balancer_supervisor.ex
Leon4gr45's picture
Upload folder using huggingface_hub (part 2)
8da2481 verified
Raw
History Blame Contribute Delete
728 Bytes
defmodule Plausible.Session.BalancerSupervisor do
@moduledoc "Serialize session processing to avoid explicit locks"
use Supervisor
if Mix.env() in [:test, :ce_test, :e2e_test] do
def size(),
do: 10
else
def size(), do: 100
end
def start_link(_) do
Supervisor.start_link(__MODULE__, size(), name: __MODULE__)
end
def init(size) do
children =
for id <- 1..size do
%{
id: id,
start: {Plausible.Session.Balancer, :start_link, [id]},
restart: :permanent
}
end
Supervisor.init(
[
{Registry, [keys: :unique, name: Plausible.Session.Balancer.Registry]} | children
],
strategy: :one_for_one
)
end
end