Packages
journey
0.10.37
0.10.58
0.10.57
0.10.56
0.10.55
0.10.54
0.10.53
0.10.52
0.10.51
0.10.50
0.10.49
0.10.48
0.10.47
0.10.46
0.10.45
0.10.44
0.10.43
0.10.41
0.10.40
0.10.39
0.10.38
0.10.37
0.10.36
0.10.35
0.10.34
0.10.33
0.10.32
0.10.31
0.10.30
0.10.29
0.10.28
0.10.27
0.10.26
0.10.25
0.10.24
0.10.23
0.10.22
0.0.9
retired
0.0.8
0.0.7
0.0.6
0.0.5
0.0.3
0.0.2
Journey is a library for defining and running durable workflows with persistence, reliability, and scalability.
Current section
Files
Jump to
Current section
Files
lib/journey/application.ex
defmodule Journey.Application do
# See https://hexdocs.pm/elixir/Application.html
# for more information on OTP Applications
@moduledoc false
require Logger
use Application
@impl true
def start(_type, _args) do
if log_level = Application.get_env(:journey, :log_level) do
Logger.put_application_level(:journey, log_level)
end
children = [
# Starts a worker by calling: Journey.Worker.start_link(arg)
# {Journey.Worker, arg}
Journey.Repo,
{Ecto.Migrator, repos: [Journey.Repo]},
Journey.Graph.Catalog,
{Task, fn -> initialize_graphs() end},
Journey.Scheduler.Background.Periodic
]
# See https://hexdocs.pm/elixir/Supervisor.html
# for other strategies and supported options
opts = [strategy: :one_for_one, name: Journey.Supervisor]
Supervisor.start_link(children, opts)
end
defp initialize_graphs() do
for f_factory <- Application.get_env(:journey, :graphs, []) do
graph = f_factory.() |> Journey.Graph.Catalog.register()
Logger.info("Registering graph #{inspect(graph.name)}")
end
end
end