Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python &引用;未知任务“;发布新任务时芹菜花出错_Python_Celery_Flower - Fatal编程技术网

Python &引用;未知任务“;发布新任务时芹菜花出错

Python &引用;未知任务“;发布新任务时芹菜花出错,python,celery,flower,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

我正在运行芹菜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
$ celery -A myapp.tasks flower
我可以在worker输出中看到可用任务的完整列表

[tasks]
  ...    
  . myapp.tasks.diffusion.post_activity
  ...
然后,我使用以下命令执行flower服务器:

$ celery -A myapp.tasks worker --loglevel=INFO -E -Q celery
$ celery -A myapp.tasks flower
现在,每当我试图通过FlowerRESTAPI发布新任务时,我都会收到一个404错误,错误消息是“未知任务名称”

我在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>}
ipdb>pp芹菜.tasks
{'celery.backend_cleanup':,
“芹菜串”:,
“芹菜,和弦”:,
“芹菜,和弦解锁”:,
“芹菜块”:,
“芹菜组”:,
“芹菜地图”:,
'芹菜.星图':}
似乎没有可用的任务。但是,当我在shell中使用task
async_apply()
方法时,任务是由辅助人员执行的

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


编辑:当我使用芹菜3.0.19和花卉0.5.0时,效果很好

我在
flower
上遇到了类似的问题。我的配置是使用redis

目前情况有所改善,我已经开始为期权“经纪人”提供明确的价值(不要问我为什么)

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

$ flower -r "amqp://"

无论如何,我还要确保,您从一个能够正确访问所有库的环境启动
芹菜
redis

此错误是由于Flower中的一个bug造成的,现在已解决:

问题:


解析提交:

闻起来像是PYTHPONPATH路径。包含任务的模块在哪里?当您运行shell并执行
async\u apply
时,您是从源目录运行的吗?可能flower服务器正在使用不同的PYTHONPATH运行。我正在从同一个目录(即我的包根目录)运行worker和flower服务器。shell也在同一个目录中运行。您能否使用pdb比较shell和flower服务器之间的
sys.path
?也许可以检查它们是否不同?唯一不同的元素是shell当前目录
'
。我尝试将其插入flower服务器路径中的位置0,但没有效果。我尝试了您的想法,但仍然得到完全相同的错误。我确认切换回flower 0.5.0是可行的。