Celery is a task queue that is to built an asynchronous message passing system. It can be used as a bucket where programming tasks can be dumped. The program that passed the task can continue to execute and function responsively.
To monitor the status of these celery tasks we use celery flower
The Celery Flower is a tool for monitoring your celery tasks and workers. It's web based and allows you to see task progress, details, worker status.
Install flower with pip
pip install flower
Celery requires a messaging agent in order to handle requests from an external source. This agent is referred to as a "broker".
RabbitMQ is the messaging server which powers this service. RabbitMQ does the following:
- Listens for messages sent via the AMQP protocol.
- Stores these messages in one or more queues.
- Releases these messages to workers for consumption and processing.
RabbitMQ does not actually execute tasks. Rather, messages will be sent and stored in queue untill executed.
Install rabbitmq using
sudo apt-get install rabbitmq-server
Add broker_api url in your settings.py
RabbitMQ management api broker_api = 'http://guest:guest@localhost:15672/api/' # Enable debug logging logging = 'DEBUG'
We need to configure RabbitMQ for message broker services before running the celery. Once the RabbitMQ is successfully started it can be checked using the web UI located at:
Once the Celery Flower is successfully started you can check using the web UI located at:
Launch the server
$ flower --port=5555
Launch from celery
$ celery flower -A proj --address=127.0.0.1 --port=5555