“未知任务”错误在芹菜花张贴新的助教

2024-05-14 08:50:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我运行的是芹菜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 worker:

^{pr2}$

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

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

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

$ celery -A myapp.tasks flower

现在,每当我试图通过flowerrestapi发布一个新任务时,都会收到一个404错误,并显示一条错误消息“Unknown task 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

我在flower 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中使用taskasync_apply()方法时,任务是由worker执行的。在

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

编辑:当我使用celery 3.0.19和flower 0.5.0时,效果非常好。在


Tags: offromimporttaskresultactivitypostmyapp
2条回答

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

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

正在解析提交:https://github.com/mher/flower/commit/bfba1eec90124c92586c480aebaf98ae63c31276

我也遇到过类似的问题。我的配置是使用redis。在

目前情况有所改善,我已经开始花明确的价值选择“经纪人”(不要问我为什么)。在

在你这种情况下,我会尽力的

$ flower -r "amqp://"

总之,我还要确保,您从一个环境启动celery和{},该环境可以正确访问所有库。在

相关问题 更多 >

    热门问题