sqlalchemy-celery-beat
A Scheduler Based SQLalchemy For Celery
What it is and what it does
sqlalchemy-celery-beat replaces Celery Beat's in-memory scheduler with a database-backed alternative, storing periodic task definitions in SQLAlchemy-compatible databases like SQLite, MySQL, or PostgreSQL. This allows you to add, modify, and disable scheduled tasks without restarting the beat process—a capability similar to django-celery-beat but for non-Django applications like Flask or FastAPI.
The package provides models for interval-based schedules (every N seconds/minutes/hours/days) and crontab-based schedules, letting you define periodic tasks programmatically through your application code. You configure a database URI in your Celery config, and the scheduler queries that database at runtime to determine which tasks to execute. It depends on celery, sqlalchemy, tzdata for timezone handling, and ephem for astronomical calculations.
Use it for:
- Store Celery periodic tasks in a database for Flask or FastAPI applications that need Django-like scheduling without Django.
- Dynamically add or modify scheduled tasks at runtime without restarting the Celery beat process.
- Run multiple beat instances against the same database to coordinate task scheduling across a distributed system.
- Use crontab-style schedules with timezone awareness for tasks that must run at specific times across regions.
- Manage task arguments and expiry times through database records instead of configuration files.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides a SQLAlchemy-backed scheduler for Celery that stores periodic task definitions in a relational database instead of configuration files, allowing dynamic task scheduling without restarting the beat process.
Yes, with conditions. Install if you need dynamic Celery task scheduling in a non-Django application and can accept that the project is in Alpha with 451 days since the last release. The low install friction and permissive MIT license are favorable, and there are no known vulnerabilities. However, verify compatibility with your specific celery and sqlalchemy versions before production use, and monitor the repository for updates given the aging maintenance status.
Install
sqlalchemy-celery-beat on PyPI
pip
pip install sqlalchemy-celery-beatuv
uv add sqlalchemy-celery-beatpoetry
poetry add sqlalchemy-celery-beatInstalling sqlalchemy-celery-beat
Before you install
Low friction install with four straightforward runtime dependencies. Maintenance status is aging—last release was 451 days ago—but the repository remains active and unarchived with recent commits, suggesting the project is maintained but not actively developed.
License in practice
MIT license is permissive, allowing use in commercial and proprietary projects with minimal restrictions beyond attribution.
Quickstart
pip install sqlalchemy-celery-beat
from sqlalchemy_celery_beat.models import PeriodicTask, IntervalSchedule, Period
from sqlalchemy_celery_beat.session import SessionManager
session_manager = SessionManager()
session = session_manager.session_factory('sqlite:///schedule.db')
schedule = IntervalSchedule(every=10, period=Period.SECONDS)
session.add(schedule)
session.commit()
task = PeriodicTask(
schedule_model=schedule,
name='my_task',
task='proj.tasks.my_task'
)
session.add(task)
session.commit()
Requires celery >= 5.0 and sqlalchemy >= 1.4 to be installed separately before use.
Verify before relying
- Whether the aging maintenance status (451 days since last release) affects compatibility with recent celery or sqlalchemy versions
- Production readiness and stability guarantees given the Alpha development status classifier
Package facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — celery, sqlalchemy, tzdata, ephem |
| Maintenance | aging — 451 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 91,145/month — #13,537 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: sqlalchemy_celery_beat-0.8.4-py3-none-any.whl
Keywords: celery, scheduler, sqlalchemy, beat
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
celery-redbeatRedBeat is a Celery Beat scheduler that…
permissive · top 5,000 on PyPI
django-celery-beatStores Celery periodic task schedules in a…
permissive · top 5,000 on PyPI
django-celery-resultsStores Celery task results in a Django database…
permissive · top 5,000 on PyPI
tenant-schemas-celeryIntegrates Celery task queuing with…
permissive · top 15,000 on PyPI
SQLAlchemy-ContinuumSQLAlchemy-Continuum adds automatic versioning…
permissive · top 5,000 on PyPI
scheduleSchedule provides a human-friendly API for…
permissive · top 5,000 on PyPI
django-tasks-dbA Django Tasks backend that stores and executes…
permissive · top 15,000 on PyPI
schedulerAn in-process job scheduler for Python that…
copyleft · top 15,000 on PyPI
APSchedulerAPScheduler lets you schedule Python code to…
permissive · top 1,000 on PyPI
celeryCelery is a distributed task queue that lets…
permissive · top 1,000 on PyPI