Python &引用;未知任务“;发布新任务时芹菜花出错
我正在运行芹菜3.1.11和花卉0.6.0 我有一个芹菜应用程序配置为这样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
# 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中使用taskasync_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是可行的。