Im Anschluss an die Dokumentation und die Demo Django Projekt hier https://github.com/celery/celery/tree/3.1/examples/djangoDjango Sellerie Received unregistrierte Aufgabe des Typs 'appname.tasks.add'
Projektstruktur
piesup2
|
piesup2
| |__init__.py
| |celery.py
| |settings.py
| |urls.py
reports
|tasks.py
|models.py
|etc....
My-Code
piesup2/celery.py
from __future__ import absolute_import
import os
from celery import Celery
# set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'piesup2.settings')
from django.conf import settings # noqa
app = Celery('piesup2')
# Using a string here means the worker will not have to
# pickle the object when using Windows.
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
@app.task(bind=True)
def debug_task(self):
print('Request: {0!r}'.format(self.request))
piesup2/__init__.py
from __future__ import absolute_import
# This will make sure the app is always imported when
# Django starts so that shared_task will use this app.
from .celery import app as celery_app # noqa
piesup2/reports/tasks.py
from __future__ import absolute_import
from celery import shared_task
@shared_task
def add(x, y):
return x + y
Nach Sellerie von der Kommandozeile beginnend mit:
celery -A piesup2 worker -l info
Wenn ich versuche, eine Aufgabe aus meiner models.py Datei ausführen so:
def do_stuff(self):
from reports.tasks import add
number = add.delay(2, 2)
print(number)
bekomme ich folgende Fehlermeldung:
[2016-08-05 16:50:31,625: ERROR/MainProcess] Received unregistered task of type 'reports.tasks.add'. The message has been ignored and discarded.
Did you remember to import the module containing this task? Or maybe you are using relative imports? Please see http://docs.celeryq.org/en/latest/userguide/tasks.html#task-names for more information.
The full contents of the message body was: {'callbacks': None, 'retries': 0, 'chord': None, 'errbacks': None, 'task': 'reports.tasks.add', 'args': [2, 2], 'timelimit': [None, None], 'kwargs': {}, 'id': 'b12eb387-cf8c-483d-b53e-f9ce0ad6b421', 'taskset': None, 'eta': None, 'expires': None, 'utc': True} (258b) Traceback (most recent call last): File "/home/jwe/piesup2/venv/lib/python3.4/site-packages/celery/worker/consumer.py", line 456, in on_task_received strategies[name](message, body, KeyError: 'reports.tasks.add'