12345678910111213141516171819202122232425262728293031323334353637383940 |
- defmodule Openpod.Application do
- # See https://hexdocs.pm/elixir/Application.html
- # for more information on OTP Applications
- @moduledoc false
- @registry :podcast_registry
- @archive_supervisor :archive_supervisor
- use Application
- def start(_type, _args) do
- children = [
- # Start Registry
- {Registry, [name: @registry, keys: :unique]},
- # Start the dynamic supervisor in order to dynamically start podcast cache
- {DynamicSupervisor, [name: @archive_supervisor, strategy: :one_for_one]},
- # Start the Telemetry supervisor
- OpenpodWeb.Telemetry,
- # Start the PubSub system
- {Phoenix.PubSub, name: Openpod.PubSub},
- # Start the Endpoint (http/https)
- OpenpodWeb.Endpoint,
- # Start a worker by calling: Openpod.Worker.start_link(arg)
- # {Openpod.Worker, arg}
- Openpod.Boundary.ArchiveScheduler,
- ]
- # See https://hexdocs.pm/elixir/Supervisor.html
- # for other strategies and supported options
- opts = [strategy: :one_for_one, name: Openpod.Supervisor]
- Supervisor.start_link(children, opts)
- end
- # Tell Phoenix to update the endpoint configuration
- # whenever the application is updated.
- def config_change(changed, _new, removed) do
- OpenpodWeb.Endpoint.config_change(changed, removed)
- :ok
- end
- end
|