defmodule Clacks.Application do # See https://hexdocs.pm/elixir/Application.html # for more information on OTP Applications @moduledoc false use Application def start(_type, _args) do # List all child processes to be supervised children = [ # Start the Ecto repository Clacks.Repo, # Start the endpoint when the application starts ClacksWeb.Endpoint, # job queue {Oban, oban_config()} # Starts a worker by calling: Clacks.Worker.start_link(arg) # {Clacks.Worker, arg}, ] # See https://hexdocs.pm/elixir/Supervisor.html # for other strategies and supported options opts = [strategy: :one_for_one, name: Clacks.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 ClacksWeb.Endpoint.config_change(changed, removed) :ok end defp oban_config do opts = Application.get_env(:clacks, Oban) # if Code.ensure_loaded?(IEx) and IEx.started?() do # opts # |> Keyword.put(:crontab, false) # |> Keyword.put(:queues, false) # else # opts # end opts end end