【发布时间】:2014-05-12 05:31:59
【问题描述】:
当我和一位 celery worker -A myapp -l info 的工人一起运行 Celery 时,一切都很好,任务已执行。
但是当我在同一目录中运行 celery multi start 2 -Q:1 message_send -Q:2 message_manager 时,我收到了“Received unregistered task”错误。
当我运行两个 worker 时,Celery 如何发现任务?
我的 celery.py:
# coding: utf-8
from __future__ import absolute_import
import os
from celery import Celery
from django.conf import settings
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myapp.settings.local')
my_app = Myapp('Myapp', include=['myapp.messages.tasks'])
my_app.config_from_object('django.conf:settings')
my_app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
@my_app.task(bind=True)
def debug_task(self):
print('Request: {0!r}'.format(self.request))
我的设置:
CELERY_ROUTES = {'messages.tasks.send_message': {'queue': 'message_send'},
'messages.tasks.control_message_send': {'queue': 'message_manager'}}
CELERY_IMPORTS = ('messages.tasks')
我的项目结构:
myapp
--settings
--messages
| --fixtures
| --migrations
| --tests
| -- __init__.py
| -- api.py
| -- tasks.py
| -- models.py
| -- views.py
-- __init__.py
-- celery.py
-- urls.py
-- utils.py
更新:问题出在导入中。 https://*.com/a/23604197/1858864
【问题讨论】: