OTP scheduler that creates normal Jidoka.Workflow.Background runs.
The scheduler owns schedule definitions, timers, and trigger history. Use an
application supervisor for lifecycle ownership. Set auto_schedule: false
in deterministic tests and call trigger_due/2 with an explicit time.
Summary
Functions
Adds one validated schedule.
Cancels future triggers and applies the declared active-run policy.
Returns a child specification for a named workflow scheduler.
Returns one schedule by ID.
Returns trigger history for one schedule in chronological order.
Lists all schedules in stable ID order.
Starts a scheduler for one named background workflow runner.
Triggers one schedule immediately while applying overlap and retry policy.
Triggers every due schedule at an explicit time.
Types
@type server() :: GenServer.server()
Functions
@spec add(server(), keyword() | map()) :: {:ok, Jidoka.Workflow.Schedule.t()} | {:error, term()}
Adds one validated schedule.
@spec cancel(server(), String.t()) :: {:ok, Jidoka.Workflow.Schedule.t()} | {:error, :not_found}
Cancels future triggers and applies the declared active-run policy.
@spec child_spec(keyword()) :: Supervisor.child_spec()
Returns a child specification for a named workflow scheduler.
@spec get(server(), String.t()) :: {:ok, Jidoka.Workflow.Schedule.t()} | {:error, :not_found}
Returns one schedule by ID.
@spec history(server(), String.t()) :: [Jidoka.Workflow.Schedule.Trigger.t()]
Returns trigger history for one schedule in chronological order.
@spec list(server()) :: [Jidoka.Workflow.Schedule.t()]
Lists all schedules in stable ID order.
@spec start_link(keyword()) :: GenServer.on_start()
Starts a scheduler for one named background workflow runner.
@spec trigger(server(), String.t(), DateTime.t() | nil) :: {:ok, Jidoka.Workflow.Schedule.Trigger.t()} | {:error, term()}
Triggers one schedule immediately while applying overlap and retry policy.
@spec trigger_due(server(), DateTime.t() | nil) :: [ Jidoka.Workflow.Schedule.Trigger.t() ]
Triggers every due schedule at an explicit time.