Development Status
- 5 - Production/Stable
License
- OSI Approved :: Apache Software License
Topic
- System :: Distributed Computing
- Software Development :: Object Brokering
Programming Language
- Python
- Python :: 3
- Python :: 3.9
- Python :: 3.10
- Python :: 3.11
- Python :: 3.12
- Python :: 3.13
- Python :: Implementation :: CPython
Operating System
- OS Independent
RedBeat is a Celery Beat Scheduler that stores the scheduled tasks and runtime metadata in Redis.
Why RedBeat?
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
Getting Started
Install with pip:
pip install celery-redbeat
Configure 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.RedBeatScheduler
If 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 = None
More details available on Read the Docs
Development
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