我在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').
答案 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