Im running celery with a redis backend. I want to run celery flower as a daemon on centos 6.2.
I understand flower is a Tornado application , so I should use a process to run a tornado application as a deamon.
Normally to start flower I use this command:
celery flower --broker=redis://localhost
I read at the below link that I need to create a python script as such: http://www.charleshooper.net/blog/python-starting-tornado-apps-at-boot-using-upstart/ (Startflower.py)
import tornado.ioloop
import tornado.web
import tornado.httpserver
if __name__ == "__main__":
http_server = tornado.httpserver.HTTPServer(application)
http_server.listen(port)
tornado.ioloop.IOLoop.instance().start()
However, I am unsure what to put in the 'application' variable. I tried 'celery flower --broker=redis://localhost' and 'celery flower" but neither worked
What do i need to do to get it working as a daemon??
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. 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.
Flower is a web based tool for monitoring and administrating Celery clusters. This topic describes how to configure Airflow to secure your flower instance. This is an optional component that is disabled by default in Community deployments and you need to configure it on your own if you want to use it.
branch=master :target: https://travis-ci.org/mher/flower. Flower is a web based tool for monitoring and administrating Celery clusters.
django-flower 1.0. 0 Flower is a web based tool for monitoring and administrating Celery clusters.
It is preferably to run flower as a daemon using systemd. Supervisord is not compatible with Python3 that has become a new best practice. Moreover, systemd is a standard process manager for most of the modern Linux distributions.
I use systemd as a daemon for flower in Ubuntu 16.04. Though I believe the set up won't be much different for other distributions.
Create a systemd configuration file called, for example, flower.service
. In my case, it is located in /etc/systemd/system
folder. It should contain:
[Unit] Description=Flower Celery Service [Service] User=your_user Group=www-data WorkingDirectory=/var/www/project-working-directory ExecStart=/home/user/miniconda3/envs/virtualenv/bin/flower --port=5555 --loglevel=info -A yourproject Restart=on-failure Type=simple [Install] WantedBy=multi-user.target
Basically, you may set all of the available options like in a terminal. By the way, you should use flower under virtual environment. Make sure that your user have privileges over a working directory.
Reload systemd daemon
sudo systemctl daemon-reload
Start a flower daemon
sudo systemctl start flower
That's all! This nice tutorial helped me get through the configuration process.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With