Celery works, but with flower doesn't work
I am not sure I understood, but are you running both flower and the worker together? Flower does not process tasks. You must run both, then Flower can be used as a monitoring tool.
Run celery:
celery -A tasks worker --loglevel=info
Open another shell and run flower:
celery -A tasks flower --loglevel=info
Then go to http://localhost:5555 and see your worker. Of course you must run some task if you want to see something.
Related videos on Youtube
Ivan
Updated on September 16, 2022Comments
-
Ivan almost 2 years
I have installed celery and RabitMQ and flower. I am able to browse to the flower port. I have the following simple worker that I can attach to celery and call from a python program:
# -*- coding: utf-8 -*- """ Created on Sat Dec 12 16:37:33 2015 @author: idf """ from celery import Celery app = Celery('tasks', broker='amqp://guest@localhost//') @app.task def add(x, y): return x + y
This program calls it
# -*- coding: utf-8 -*- """ Created on Sat Dec 12 16:40:16 2015 @author: idf """ from tasks import add add.delay(36, 5)
I start celery like this:
idf@DellInsp:~/Documents/Projects/python3$ celery -A tasks worker --loglevel=info [2015-12-12 19:22:46,223: WARNING/MainProcess] /home/idf/anaconda3/lib/python3.5/site-packages/celery/apps/worker.py:161: CDeprecationWarning: Starting from version 3.2 Celery will refuse to accept pickle by default. The pickle serializer is a security concern as it may give attackers the ability to execute any command. It's important to secure your broker from unauthorized access when using pickle, so we think that enabling pickle should require a deliberate action and not be the default choice. If you depend on pickle then you should set a setting to disable this warning and to be sure that everything will continue working when you upgrade to Celery 3.2:: CELERY_ACCEPT_CONTENT = ['pickle', 'json', 'msgpack', 'yaml'] You must only enable the serializers that you will actually use. warnings.warn(CDeprecationWarning(W_PICKLE_DEPRECATED)) -------------- celery@DellInsp v3.1.19 (Cipater) ---- **** ----- --- * *** * -- Linux-3.19.0-39-lowlatency-x86_64-with-debian-jessie-sid -- * - **** --- - ** ---------- [config] - ** ---------- .> app: tasks:0x7f61485e61d0 - ** ---------- .> transport: amqp://guest:**@localhost:5672// - ** ---------- .> results: disabled - *** --- * --- .> concurrency: 4 (prefork) -- ******* ---- --- ***** ----- [queues] -------------- .> celery exchange=celery(direct) key=celery [tasks] . tasks.add [2015-12-12 19:22:46,250: INFO/MainProcess] Connected to amqp://guest:**@127.0.0.1:5672// [2015-12-12 19:22:46,267: INFO/MainProcess] mingle: searching for neighbors [2015-12-12 19:22:47,275: INFO/MainProcess] mingle: all alone [2015-12-12 19:22:47,286: WARNING/MainProcess] celery@DellInsp ready. [2015-12-12 19:22:47,288: INFO/MainProcess] Received task: tasks.add[3c0e5317-ac53-465e-a8fd-3e2861e31db6] [2015-12-12 19:22:47,289: INFO/MainProcess] Task tasks.add[3c0e5317-ac53-465e-a8fd-3e2861e31db6] succeeded in 0.00045899399992777035s: 41 ^C worker: Hitting Ctrl+C again will terminate all running tasks! worker: Warm shutdown (MainProcess)
Notice the correct output of
41
However, if I pass in the
flower
parameter, nothing happens when I execute the call. I also don't see any tasks on theflower
website.idf@DellInsp:~/Documents/Projects/python3$ celery flower -A tasks worker --loglevel=info [I 151212 19:23:59 command:113] Visit me at http://localhost:5555 [I 151212 19:23:59 command:115] Broker: amqp://guest:**@localhost:5672// [I 151212 19:23:59 command:118] Registered tasks: ['celery.backend_cleanup', 'celery.chain', 'celery.chord', 'celery.chord_unlock', 'celery.chunks', 'celery.group', 'celery.map', 'celery.starmap', 'tasks.add'] [I 151212 19:23:59 mixins:231] Connected to amqp://guest:**@127.0.0.1:5672// [W 151212 19:24:01 control:44] 'stats' inspect method failed [W 151212 19:24:01 control:44] 'active_queues' inspect method failed [W 151212 19:24:01 control:44] 'registered' inspect method failed [W 151212 19:24:01 control:44] 'scheduled' inspect method failed [W 151212 19:24:01 control:44] 'active' inspect method failed [W 151212 19:24:01 control:44] 'reserved' inspect method failed [W 151212 19:24:01 control:44] 'revoked' inspect method failed [W 151212 19:24:01 control:44] 'conf' inspect method failed ^Cidf@DellInsp:~/Documents/Projects/python3$
Finally, not sure it is an error, but my flower website does not have a workers Tab.
-
Ivan over 8 yearsSo what is the command line to run flower to monitor a simple worker like above?
-
Ivan over 8 yearsThis sequence seems to work. I even see it updating when I request the add method. Thanks! Strange because it seems what is suggested by janr should work according to the documentation.
-
Simone Zandara over 8 yearsWhich documentations? I cannot find such syntax. In the flower official documentation it suggests to run it either as separate process through its own comand "flower" or simply through celery as I suggested.
-
Ivan over 8 yearsHe links to the documentation in his reply below. That is what I tried originally but can't get it to work that way.
-
Vic Nicethemer over 8 yearsStrange, why this is not described in docs! I was thinking that i need ti launch only one: either worker OR flower!
-
Nilesh almost 4 yearsis there any way to do this without
celery -A tasks flower
command? like directlyflower --broker
or other command ?