Skip to main content

One Schedules page. Every scheduler.

z4j ships a dedicated scheduler adapter for every Python task engine. Periodic tasks from celery-beat, rq-scheduler, APScheduler, Huey, arq cron, and taskiq all surface in one consistent UI. Plus z4j-scheduler, an engine-agnostic dynamic scheduler for operators who want a single service across multiple engines.

Per-engine adapters

Surface your existing scheduler in the z4j dashboard

Each engine has one or more native schedulers. z4j ships an adapter for each so you can manage existing schedules from the same UI as everything else - no migration required.

Engine-agnostic option

z4j-scheduler

A separate companion process that fires schedules against any of the six engines. Schedules live in z4j-brain's database; edit from the dashboard, declarative config, or REST without restarting any daemon. Useful when you have multiple engines in one shop, or want a single audit-logged surface for schedule edits across the org.

z4j-scheduler

pip install z4j-scheduler

Engine-agnostic dispatch (Celery, RQ, Dramatiq, Huey, arq, taskiq). Live edit from dashboard / declarative / REST. Importer + exporter for every native scheduler so you can migrate in or out without lock-in. HA via Postgres advisory-lock leader. Tamper-evident HMAC-chained audit log.

See full comparison
How to choose

Which scheduler for which engine?

Every engine has a default pairing. You can also pair any engine with APScheduler if you prefer a single scheduling runtime.

Engine Default scheduler Capabilities
Celery Celery Beat z4j-celerybeat List schedules, Create schedule, Update schedule, Delete schedule, Enable / disable, Trigger-now
RQ rq-scheduler z4j-rqscheduler List schedules, Enable / disable, Delete, Trigger-now
Dramatiq APScheduler z4j-apscheduler List, Read, Enable / disable, Delete, Trigger-now
Huey Huey @periodic_task z4j-hueyperiodic List, Read
arq arq cron_jobs z4j-arqcron List, Read
taskiq taskiq scheduler z4j-taskiqscheduler List, Read, Delete (when source supports it)
Quick install

Add a scheduler to your app

Install the scheduler package alongside your engine adapter. The agent auto-discovers periodic tasks on boot and keeps the dashboard in sync.

bash
# Celery + celery-beat
pip install z4j-celery z4j-celerybeat

# RQ + rq-scheduler
pip install z4j-rq z4j-rqscheduler

# Dramatiq + APScheduler (engine-agnostic scheduler)
pip install z4j-dramatiq z4j-apscheduler

# Huey with @periodic_task decorators
pip install z4j-huey z4j-hueyperiodic

# arq with WorkerSettings.cron_jobs
pip install z4j-arq z4j-arqcron

# taskiq schedule sources
pip install z4j-taskiq z4j-taskiqscheduler

Need a scheduler for a custom stack?

APScheduler works with any engine. Or implement the SchedulerAdapter Protocol: six methods, ~200 LOC.