RedBeat is a Celery Beat Scheduler that stores the scheduled tasks and runtime metadata in Redis.
- Dynamic live task creation and modification, without lengthy downtime
- Externally manage tasks from any language with Redis bindings
- Shared data store; Beat isn't tied to a single drive or machine
- Fast startup even with a large task count
- Prevent accidentally running multiple Beat servers
For more background on the genesis of RedBeat see this blog post
Install with pip:
pip install celery-redbeatConfigure RedBeat settings in your Celery configuration file:
redbeat_redis_url = "redis://localhost:6379/1"Then specify the scheduler when running Celery Beat:
celery beat -A <celery_app_file_path>.<celery_app_instance_name> -S redbeat.RedBeatSchedulerIf using the embedded beat in a worker process (like in development), specify the scheduler like so:
celery worker --beat --scheduler redbeat.RedBeatScheduler ...RedBeat uses a distributed lock to prevent multiple instances running. To disable this feature, set:
redbeat_lock_key = NoneMore details available on Read the Docs
RedBeat is available on GitHub
Once you have the source you can run the tests with make (recommended):
make setup make test
Or using pip directly:
pip install -r requirements-dev.txt python -m unittest discover tests
Optional: if you use mise to manage Python, it will read .mise.toml and install the pinned Python version. After that, still use make for tasks:
mise install make setup && make test
You can also quickly fire up a sample Beat instance with:
celery beat --config exampleconf