當我與一名celery worker -A myapp -l info
的工人一起運行芹菜時,一切都很好,任務執行。瞭解芹菜和芹菜的區別?
但是當我在同一個目錄下運行celery multi start 2 -Q:1 message_send -Q:2 message_manager
時,我收到'收到的未註冊任務'錯誤。 當我運行兩名工人時,芹菜如何發現任務?
我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
UPDATE:問題是進口。 https://stackoverflow.com/a/23604197/1858864
謝謝!問題出在進口和芹菜運行字符串。 – Paul