Packages
quantum
2.2.5
3.5.3
3.5.2
retired
3.5.1
retired
3.5.0
3.4.0
3.3.0
3.2.0
3.1.0
3.0.2
3.0.1
3.0.0
3.0.0-rc.3
3.0.0-rc.2
3.0.0-rc.1
2.4.0
2.3.4
2.3.3
2.3.2
2.3.1
retired
2.3.0
retired
2.2.7
2.2.6
2.2.5
retired
2.2.4
retired
2.2.3
retired
2.2.2
retired
2.2.1
retired
2.2.0
retired
2.1.3
retired
2.1.2
retired
2.1.1
retired
2.1.0
retired
2.1.0-beta.1
retired
2.0.4
retired
2.0.3
retired
2.0.2
retired
2.0.1
retired
2.0.0
retired
2.0.0-beta.2
retired
2.0.0-beta.1
retired
1.9.3
retired
1.9.2
retired
1.9.1
retired
1.9.0
retired
1.8.1
retired
1.8.0
retired
1.7.1
retired
1.7.0
retired
1.6.1
retired
1.6.0
retired
1.5.0
retired
1.4.0
retired
1.3.2
retired
1.3.1
retired
1.3.0
retired
1.2.4
retired
1.2.3
retired
1.2.2
retired
1.2.1
retired
1.2.0
retired
1.1.0
retired
1.0.4
retired
1.0.3
retired
1.0.2
retired
1.0.1
retired
1.0.0
retired
Cron-like job scheduler for Elixir.
Retired package: Release invalid - Problem with Daylight Saving Time
Current section
Files
Jump to
Current section
Files
lib/quantum/supervisor.ex
defmodule Quantum.Supervisor do
@moduledoc false
use Supervisor
alias Quantum.TaskStagesSupervisor
@doc """
Starts the quantum supervisor.
"""
@spec start_link(GenServer.server(), atom, Keyword.t()) :: GenServer.on_start()
def start_link(quantum, otp_app, opts) do
name = Keyword.take(opts, [:name])
Supervisor.start_link(__MODULE__, {quantum, otp_app, opts}, name)
end
## Callbacks
def init({quantum, otp_app, opts}) do
opts = Quantum.runtime_config(quantum, otp_app, opts)
opts = quantum_init(quantum, opts)
Supervisor.init(
[
{TaskStagesSupervisor, opts},
{Task.Supervisor, [name: Keyword.get(opts, :task_supervisor)]}
],
strategy: :rest_for_one
)
end
# Run Optional Callback in Quantum Scheduler Implementation
@spec quantum_init(atom, Keyword.t()) :: Keyword.t()
defp quantum_init(quantum, config) do
if Code.ensure_loaded?(quantum) and function_exported?(quantum, :init, 1) do
quantum.init(config)
else
config
end
end
end