我安装了芹菜和RabitMQ和花.我可以浏览到花港.我有以下简单的工作人员,我可以附加到芹菜和从python程序调用:
# -*- 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
这个程序称之为
# -*- coding: utf-8 -*- """ Created on Sat Dec 12 16:40:16 2015 @author: idf """ from tasks import add add.delay(36, 5)
我这样开芹菜:
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)
注意正确的输出 41
但是,如果我传入flower
参数,则执行调用时没有任何反应.我也没有在flower
网站上看到任何任务.
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$
最后,不确定这是一个错误,但我的花卉网站没有工人标签.
我不确定我是否理解,但你是在一起经营花和工人吗?花不处理任务.你必须同时运行两个,然后Flower可以用作监视工具.
跑芹菜:
celery -A tasks worker --loglevel=info
打开另一个shell并运行花:
celery -A tasks flower --loglevel=info
然后转到http:// localhost:5555并查看您的工作人员.当然,如果你想看到某些东西,你必须运行一些任务.