Kathikon.Scheduler.Quantum (Kathikon v0.2.0)

Copy Markdown View Source

Optional Quantum scheduler adapter.

Quantum decides when recurring schedules fire. Kathikon owns durable job creation, execution, history, retry, dead-letter, batches, and reporting.

Configuration

config :kathikon,
  scheduler: Kathikon.Scheduler.Quantum,
  quantum_scheduler: MyApp.KathikonScheduler

Example user scheduler

defmodule MyApp.KathikonScheduler do
  use Quantum, otp_app: :my_app
end

See docs/quantum_adapter.md.

Summary

Functions

Removes a recurring schedule from the configured Quantum scheduler.

Fetches a recurring schedule from the configured Quantum scheduler.

Lists recurring schedules registered with the configured Quantum scheduler.

Schedules a one-time job via the built-in scheduler when Quantum is available.

Registers a recurring cron schedule with Quantum when available.

Updates the cron expression on a Quantum recurring schedule when supported.

Functions

cancel_schedule(schedule_id)

Removes a recurring schedule from the configured Quantum scheduler.

fetch_schedule(schedule_id)

Fetches a recurring schedule from the configured Quantum scheduler.

list_schedules(opts \\ [])

Lists recurring schedules registered with the configured Quantum scheduler.

schedule_once(worker, args, opts)

Schedules a one-time job via the built-in scheduler when Quantum is available.

Returns {:error, :quantum_not_available} when the Quantum dependency is not loaded, or {:error, :quantum_scheduler_not_configured} when no scheduler module is configured.

schedule_recurring(worker, args, opts)

Registers a recurring cron schedule with Quantum when available.

Returns {:error, :quantum_not_available} when the Quantum dependency is not loaded, or {:error, :quantum_scheduler_not_configured} when no scheduler module is configured.

update_schedule(schedule_id, opts)

Updates the cron expression on a Quantum recurring schedule when supported.