dotfiles/app/lib/prymn/application.ex
Nikos Papadakis 5bd44ef9ac
refactor: agent connections now use the new healthcheck streaming
`Prymn.Agent.Connection` GenServer uses healthchecking with the new
streaming RPC, retrieving asynchronously the health status of the agent.

The Connection will also shut itself down when there's no usage (when
the keepalive function is not called frequently)
2023-08-19 21:14:07 +03:00

39 lines
1.2 KiB
Elixir

defmodule Prymn.Application do
# See https://hexdocs.pm/elixir/Application.html
# for more information on OTP Applications
@moduledoc false
use Application
@impl true
def start(_type, _args) do
children = [
# Start the Telemetry supervisor
PrymnWeb.Telemetry,
# Start the Ecto repository
Prymn.Repo,
# Start the PubSub system
{Phoenix.PubSub, name: Prymn.PubSub},
# Start Finch
{Finch, name: Prymn.Finch},
# Start the Endpoint (http/https)
PrymnWeb.Endpoint,
# Start the prymn agent (grpc) registry and the supervisor
{Registry, keys: :unique, name: Prymn.Agents.Registry},
{DynamicSupervisor, name: Prymn.Agents.Supervisor, strategy: :one_for_one, max_seconds: 60}
]
# See https://hexdocs.pm/elixir/Supervisor.html
# for other strategies and supported options
opts = [strategy: :one_for_one, name: Prymn.Supervisor]
Supervisor.start_link(children, opts)
end
# Tell Phoenix to update the endpoint configuration
# whenever the application is updated.
@impl true
def config_change(changed, _new, removed) do
PrymnWeb.Endpoint.config_change(changed, removed)
:ok
end
end