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. Create, edit, pause, resume, and trigger schedules from the dashboard.

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.