Overview
Celery Root ships a DB-backed beat scheduler. Beat reads and writes schedules in the same SQLite/DB used by the Root supervisor and UI. When enabled, the Root process manager starts one beat process per worker import path and sets the Celery app to use the bundled scheduler.Enable beat via Celery Root
AddBeatConfig() to your config and provide worker import paths:
celery_root -A your_app.celery:app or celery -A your_app.celery:app celery_root). For each configured path, Root:
- launches a dedicated beat process,
- sets
app.conf.beat_scheduler = "celery_root.components.beat.db_scheduler:DatabaseScheduler", - applies
beat_db_refresh_secondswhen set.
Adjust refresh polling
Beat reloads schedules on an interval. Override it withdb_refresh_seconds:
app.conf.beat_db_refresh_seconds directly on your Celery app when running beat yourself.
Using the scheduler outside Root
If you run Celery beat manually, point it to the Root scheduler so schedules stay in the Root DB:/beat/ page will show and edit schedules stored in the DB.