Packages
ex_esdb
0.4.7
0.11.0
0.10.0
0.9.0
0.8.0
0.7.8
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.1
0.6.0
0.5.1
0.5.0
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
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.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
0.0.20
0.0.19
0.0.18
0.0.17
0.0.16
0.0.15
0.0.14-alpha
0.0.13-alpha
0.0.12-alpha
0.0.11-alpha
0.0.10-alpha
0.0.9-alpha
0.0.8-alpha
0.0.6-alpha
0.0.5-alpha
0.0.4-alpha
0.0.3-alpha
0.0.2-alfa
0.0.1-alfa
ExESDB is a reincarnation of rabbitmq/khepri, specialized for use as a BEAM-native event store.
Current section
Files
Jump to
Current section
Files
lib/ex_esdb/gateway_supervisor.ex
defmodule ExESDB.GatewaySupervisor do
@moduledoc """
@deprecated "Use ExESDB.GatewaySystem instead"
The GatewaySupervisor is responsible for starting and supervising the
GatewayWorkers.
This module is deprecated in favor of ExESDB.GatewaySystem which provides
improved fault tolerance with pooled workers.
"""
use Supervisor
require Logger
alias ExESDB.Themes, as: Themes
@impl Supervisor
def init(opts) do
children =
[
{ExESDB.GatewayWorker, opts}
]
IO.puts("#{Themes.gateway_supervisor(self(), "is UP!")}")
Supervisor.init(children, strategy: :one_for_one)
end
def start_link(opts) do
store_id = ExESDB.StoreNaming.extract_store_id(opts)
name = ExESDB.StoreNaming.genserver_name(__MODULE__, store_id)
Supervisor.start_link(
__MODULE__,
opts,
name: name
)
end
def child_spec(opts) do
store_id = ExESDB.StoreNaming.extract_store_id(opts)
%{
id: ExESDB.StoreNaming.child_spec_id(__MODULE__, store_id),
start: {__MODULE__, :start_link, [opts]},
type: :supervisor,
restart: :permanent,
shutdown: 5000
}
end
end