Packages
snakepit
0.13.0
0.13.0
0.12.0
0.11.1
0.11.0
0.10.1
0.10.0
0.9.1
0.9.0
0.8.9
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.7
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.11
0.6.10
0.6.9
0.6.8
0.6.7
0.6.6
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.1
0.5.0
0.4.3
0.4.2
0.4.1
0.4.0
0.3.3
0.3.2
0.3.1
0.3.0
0.2.1
0.2.0
0.1.2
0.1.1
0.1.0
High-performance pooler and session manager for external language integrations. Supports Python, Node.js, Ruby, and more with gRPC streaming, session management, and production-ready process cleanup.
Current section
Files
Jump to
Current section
Files
lib/snakepit/pool/runtime_supervisor.ex
defmodule Snakepit.Pool.RuntimeSupervisor do
@moduledoc false
use Supervisor
def start_link(opts \\ []) when is_list(opts) do
Supervisor.start_link(__MODULE__, opts, name: __MODULE__)
end
@impl true
def init(opts) do
pool_size = Keyword.get(opts, :pool_size)
children = [
Snakepit.GRPC.ClientSupervisor,
Snakepit.GRPC.Listener,
Snakepit.Pool.Worker.StarterRegistry,
Snakepit.WorkerProfile.Thread.CapacityStore,
Snakepit.Pool.WorkerSupervisor,
Snakepit.Worker.LifecycleManager,
{Snakepit.Pool, [size: pool_size]},
Snakepit.Telemetry.GrpcStream
]
Supervisor.init(children, strategy: :rest_for_one)
end
end