Innovate anywhere, anytime withruncode.io Your cloud-based dev studio.
MongoDB

Celery Flower to Monitor Task Queue

2022-07-21

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

Install RabbitMQ

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:

http://localhost:15672/

Usage

Once the Celery Flower is successfully started you can check using the web UI located at:

http://localhost:5555

Launch the server

$ flower --port=5555

Launch from celery

$ celery flower -A proj --address=127.0.0.1 --port=5555