Django Sellerie Erhalten unregistrierte Aufgabe des Typs " appname.Aufgaben.hinzufügen'
Folgenden die Dokumentation und die Demo-Django-Projekt hier https://github.com/celery/celery/tree/3.1/examples/django
Projektstruktur
piesup2
|
piesup2
| |__init__.py
| |celery.py
| |settings.py
| |urls.py
reports
|tasks.py
|models.py
|etc....
Mein 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 dem Start Sellerie von der Befehlszeile aus mit:
celery -A piesup2 worker -l info
Beim Versuch zum ausführen einer Aufgabe aus meiner models.py Datei wie folgt:
def do_stuff(self):
from reports.tasks import add
number = add.delay(2, 2)
print(number)
Bekomme ich die folgende Fehlermeldung:
[2016-08-05 16:50:31,625: FEHLER/MainProcess] Erhalten unregistrierte
Aufgabe des Typs " berichten.Aufgaben.hinzufügen'. Die Nachricht wurde ignoriert und
verworfen.Haben Sie daran gedacht, importieren Sie das Modul mit dieser Aufgabe? Oder vielleicht
Sie sind über die Verwendung der relativen Importe? Bitte sehen http://docs.celeryq.org/en/latest/userguide/tasks.html#task-names für
mehr Informationen.Den vollständigen Inhalt der Nachricht Körper war: {'Rückrufe': None,
'Wiederholungen': 0, 'Akkord': None, 'errbacks': None, 'Aufgabe':
'Berichte.Aufgaben.hinzufügen', 'args': [2, 2], 'timelimit': [None, None],
'kwargs': {}, 'id': 'b12eb387-cf8c-483d-b53e-f9ce0ad6b421', 'taskset':
None, 'eta': None, 'abläuft': 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
Strategien[name](message, Körper, KeyError: 'Berichte.Aufgaben.hinzufügen'
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Ihren django-Einstellungen, die Sie hinzufügen müssen jedes Modul, hat eine Sellerie Aufgabe CELERY_IMPORTS