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-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
RedBeat is available on GitHub
Once you have the source you can run the tests with the following commands:
pip install -r requirements-dev.txt python -m unittest discover tests
You can also quickly fire up a sample Beat instance with:
celery beat --config exampleconf