Ich versuche Sellery in mein Django-Projekt zu integrieren. Ich habe die Celery-Dokumentation verfolgt und kann eine einfache Hello-World-Aufgabe ausführen. Aber wenn ich versuche, meine Modelle in meine Aufgabendefinitionen zu importieren, erhalte ich die Ausnahme AppRegisteredNotReady. Ich finde einige ältere Diskussionen um diese Ausnahme, aber nichts Aktuelles. Vermutlich vermisse ich etwas ganz Einfaches.Django und Sellerie, AppRegisteredNotReady Ausnahme
Python 3.5, Django 1.9, Sellerie 3.1.23
Celery.py:
from __future__ import absolute_import
import os
from celery import Celery
from django.conf import settings
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings.local') # pragma: no cover
app = Celery('autopool')
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS, force=True)
@app.task(bind=True)
def debug_task(self):
print('Request: {0!r}'.format(self.request)) # pragma: no cover
autopool/init Py:
from __future__ import absolute_import
from autopool.celery import app as celery_app # noqa
apps/Pools/Aufgaben. py:
from __future__ import absolute_import
from celery import shared_task
@shared_task
def send_period_mail(period_id):
print("Mail sent for period " + period_id)
Ich beginne Sellerie mit dem Befehl:
celery -A autopool worker -l info
Aus meiner Sicht, ich ausführen:
import .tasks send_period_mail
send_period_mail(period_id=period.id)
Das alles funktioniert.
aber wenn ich versuche, ein Modell, um die Aufgabe hinzuzufügen:
from __future__ import absolute_import
from celery import shared_task
from .models import Period
@shared_task
def send_period_mail(period_id):
print("Mail sent for period " + period_id)
Jetzt, wenn ich versuche, Sellerie zu beginnen, ich die AppRegisteryNotReady erhalten: Apps sind noch nicht Ausnahme geladen.
Voll Stack-Trace: http://pastebin.com/kmJZLHpT
jemand eine Ahnung haben?