django-carrot is a lightweight task queue backend for Django projects that uses the RabbitMQ message broker, with an emphasis on quick and easy configuration and task tracking
Install django-carrot:
pip install django-carrot
Install and run RabbitMQ
brew install rabbitmq
brew services start rabbitmq
- Add carrot to your Django project's settings module:
INSTALLED_APPS = [
...
'carrot',
...
]
- Apply the carrot migrations to your project's database:
python manage.py migrate carrot
To start the service:
python manage.py carrot_daemon start
To run tasks asynchronously:
from carrot.utilities import publish_message
def my_task(**kwargs):
return 'hello world'
publish_message(my_task, hello=True)
To schedule tasks to run at a given interval
from carrot.utilities import create_scheduled_task
create_scheduled_task(my_task, {'seconds': 5}, hello=True)
Note
The above commands must be made from within the Django environment
A sample docker config is available here
The full documentation is available here
If you are having any issues, please log an issue
Django-carrot uses Packagr to share development builds. If you'd like access to it, please send me your email address at [email protected] so I can give you access
The project is licensed under the Apache license.
Icons made by Trinh Ho from www.flaticon.com is licensed by CC 3.0 BY