python芹菜多未注册的任务

时间:2014-05-08 06:57:52

标签: python django celery

我在Celery中有两个队列,还有一个任务task.py。 当我用

运行芹菜时
celery worker -A myapp  -l info -Q messages1
celery worker -A myapp  -l info -Q messages2

在两个不同的终端中,它运行正常并运行我的所有任务。

但如果我参加

celery multi start 2 -Q:1 messages1 -Q:2 messages2 --loglevel=DEBUG

我得到[2014-05-08 15:30:33,020: ERROR/MainProcess] Received unregistered task of type。 我做错了什么?

更新:我发现了,

 celery worker -A myapp  -l info -Q messages1
 celery worker -A myapp  -l info -Q messages2

实际上是一名工人。当我为每个工人指定-n param:

 celery worker -A myapp  -l info -Q messages1 -n w1
 celery worker -A myapp  -l info -Q messages2 -n w2

我遇到同样的问题:

[2014-05-08 16:51:05,329: ERROR/MainProcess] Received unregistered task of type

更新1:  我已经有以下一行:

CELERY_ROUTES = {'messages.tasks.send_message': {'queue': 'message_send'}, 'messages.tasks.control_message_send': {'queue': 'message_manager'}}.

似乎没有效果。我运行这样的任务:

result = send_message.apply_async(('number', 'message text'), queue='message_send'). 

1 个答案:

答案 0 :(得分:1)

问题通过两个步骤解决:

1)芹菜多的正确运行字符串为celery multi start 2 -Q:1 messages1 -Q:2 messages2 --loglevel=DEBUG -A myapp

2)我忘了在__init__.py中导入我的应用:

`from __future__ import absolute_import
from myapp.celery_app import celery_app as celery_app`

此日志消息中的链接非常有用。 http://docs.celeryq.org/en/latest/userguide/tasks.html#task-names