发布新任务时,Celery Flower中出现“未知任务”错误

时间:2014-04-23 10:21:18

标签: python celery flower

我正在运行芹菜3.1.11和花0.6.0。

我有这样配置的芹菜应用程序;

# myapp.tasks.celery.py
from __future__ import absolute_import    

from celery import Celery


class Config(object):
    BROKER_URL = 'amqp://'
    CELERY_RESULT_BACKEND = 'amqp'

    CELERY_TASK_RESULT_EXPIRES = None
    CELERY_RESULT_SERIALIZER = 'json'
    CELERY_INCLUDE = [
        'myapp.tasks.source',
        'myapp.tasks.page',
        'myapp.tasks.diffusion',
        'myapp.tasks.place',
    ]
)

celery = Celery('myapp')
celery.config_from_object(Config)    


if __name__ == '__main__':
    celery.start()

我使用以下命令执行芹菜工作者:

$ celery -A myapp.tasks worker --loglevel=INFO -E -Q celery

我可以在worker输出中看到完整的可用任务列表。

[tasks]
  ...    
  . myapp.tasks.diffusion.post_activity
  ...

然后我使用以下命令执行flower服务器:

$ celery -A myapp.tasks flower

现在,每当我尝试通过Flower REST API发布新任务时,都会收到404错误,并显示错误消息“未知任务TASK_NAME”。

[W 140423 12:16:17 web:1302] 404 POST /api/task/async-apply/myapp.tasks.diffusion.post_activity (82.225.61.194): Unknown task 'myapp.tasks.diffusion.post_activity'
[W 140423 12:16:17 web:1728] 404 POST /api/task/async-apply/myapp.tasks.diffusion.post_activity (82.225.61.194) 4.68ms

我在花卉API处理程序中放了一个pdb断点,看来处理请求时唯一可用的任务如下:

ipdb> pp celery.tasks
{'celery.backend_cleanup': <@task: celery.backend_cleanup of yoda.tasks.celery:0x7fb9191eb490>,
 'celery.chain': <@task: celery.chain of yoda.tasks.celery:0x7fb9191eb490>,
 'celery.chord': <@task: celery.chord of yoda.tasks.celery:0x7fb9191eb490>,
 'celery.chord_unlock': <@task: celery.chord_unlock of yoda.tasks.celery:0x7fb9191eb490>,
 'celery.chunks': <@task: celery.chunks of yoda.tasks.celery:0x7fb9191eb490>,
 'celery.group': <@task: celery.group of yoda.tasks.celery:0x7fb9191eb490>,
 'celery.map': <@task: celery.map of yoda.tasks.celery:0x7fb9191eb490>,
 'celery.starmap': <@task: celery.starmap of yoda.tasks.celery:0x7fb9191eb490>}

似乎没有任何任务可用。但是,当我在shell中使用任务async_apply()方法时,该任务由工作人员执行。

知道我做错了什么吗?谢谢!

编辑:当我使用芹菜3.0.19和花0.5.0时,它看起来很有效。

1 个答案:

答案 0 :(得分:1)

此错误是由于Flower中的错误导致现在已经解决:

问题:https://github.com/mher/flower/issues/200

解决提交:https://github.com/mher/flower/commit/bfba1eec90124c92586c480aebaf98ae63c31276