Current section
Files
Jump to
Current section
Files
lib/rulestead/application.ex
# credo:disable-for-this-file
defmodule Rulestead.Application do
@moduledoc false
use Application
alias Rulestead.Admin.StaleTracker
alias Rulestead.Redis
alias Rulestead.Runtime.Config
alias Rulestead.Runtime.Supervisor, as: RuntimeSupervisor
@impl true
def start(_type, _args) do
runtime_options = Config.startup_options()
children =
redis_children() ++
[
StaleTracker,
Rulestead.Analytics.Batcher,
{RuntimeSupervisor, runtime_options}
]
opts = [strategy: :one_for_one, name: __MODULE__.Supervisor]
case Elixir.Supervisor.start_link(children, opts) do
{:ok, pid} ->
Rulestead.Analytics.TelemetryHandler.attach()
{:ok, pid}
error ->
error
end
end
defp redis_children do
Redis.child_specs()
end
end