Scheduler

The Scheduler holds jobs and runs them when they are due.

Core loop

schedium is intentionally “in-process”: you call schedium.scheduler.Scheduler.run_pending() periodically.

import time
from schedium import Every, Job, Scheduler

sched = Scheduler()

def task() -> None:
    print("task")

sched.append(Job(task, Every(unit="minute", interval=5)))

while True:
    sched.run_pending()
    time.sleep(1)

Cancelling jobs

If a job returns CancelJob, the scheduler removes that job (it cancels itself). See Cancelling a job (self-removal).

API reference

full API reference for Scheduler available in /api/scheduler.