Celery in die App-Factory integrieren
Konfigurieren Sie einen Broker und die Celery-App.
Celery in die App-Factory integrieren ist eine kostenlose Flask Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Flask Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Flask Academy-Kurs umfasst insgesamt 4 Lektionen.
Drei Bausteine zum Verbinden
Für Celery benötigen Sie drei Dinge: die URL des Brokers, ein Ergebnis-Backend und ein Celery-App-Objekt, zu dem Ihre Tasks gehören.
Einen Broker auswählen
Redis ist der einfachste Broker für den Einstieg. Sie geben Celery eine URL, damit bekannt ist, wohin Jobs gesendet und von wo sie abgerufen werden.
broker_url = "redis://localhost:6379/0"Ein Ergebnis-Backend hinzufügen
Wenn Sie Task-Ergebnisse später lesen möchten, richten Sie ein Ergebnis-Backend ein. In der Entwicklung eignet sich Redis gut für Broker und Backend.
result_backend = "redis://localhost:6379/1"Das Celery-App-Objekt
Im Mittelpunkt von Celery steht eine Instanz von Celery(). Tasks werden dort registriert, und Worker laden diese Instanz, um zu wissen, was sie ausführen sollen.
from celery import Celery
celery = Celery(__name__)Warum die Factory wichtig ist
Beim App-Factory-Muster wird die Konfiguration innerhalb von create_app geladen. Celery sollte seine Broker-URL aus derselben Konfiguration beziehen und sie nicht fest einprogrammieren.
Konfiguration aus Flask lesen
Speichern Sie die CELERY-Einstellungen in Ihrer Flask-Konfiguration, damit sich Entwicklung, Tests und Produktion unterscheiden können. Erzeugen Sie Celery anschließend innerhalb der Factory aus app.config.
app.config["CELERY_BROKER_URL"] = "redis://localhost:6379/0"Eine make_celery-Hilfsfunktion
Ein verbreitetes Muster ist eine Funktion make_celery(app), die app.config liest und eine konfigurierte Celery-Instanz zurückgibt.
def make_celery(app):
c = Celery(app.import_name)
c.conf.update(app.config)
return cTasks benötigen den App-Kontext
Tasks greifen häufig auf die Datenbank oder current_app zu, wofür ein App-Kontext erforderlich ist. Ohne ihn schlagen diese Aufrufe beim Ausführen des Workers fehl.
Die Task-Basisklasse erweitern
Die klassische Lösung besteht darin, jeden Task so zu kapseln, dass er vor der Ausführung einen App-Kontext aktiviert. So können Tasks Flask-Erweiterungen sicher verwenden.
Zwei Prozesse, eine Konfiguration
Webprozess und Worker sind getrennt, erzeugen Celery aber beide aus derselben Konfiguration. So verwenden sie denselben Broker und dasselbe Backend.
Einen Worker starten
Sie starten Worker über die Kommandozeile und verweisen dabei auf Ihre Celery-Instanz. Anschließend warten sie beim Broker auf Jobs.
celery -A app.celery worker --loglevel=infoKurze Überprüfung
Tasks verwenden häufig die Datenbank.
Zusammenfassung
Richten Sie Broker und Backend ein, erzeugen Sie Celery innerhalb von create_app aus app.config und aktivieren Sie einen App-Kontext, damit Tasks Flask verwenden können. ✅
Häufig gestellte Fragen
Ist die Lektion „Celery in die App-Factory integrieren“ kostenlos?
Ja — der vollständige Text von „Celery in die App-Factory integrieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Flask Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Flask Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Celery in die App-Factory integrieren“?
Konfigurieren Sie einen Broker und die Celery-App. Du übst Flask Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Flask Academy zu starten?
Keine Vorkenntnisse erforderlich. Flask Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Celery in die App-Factory integrieren“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Flask Academy-Lektion Code schreiben und ausführen?
Ja. Jede Flask Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Warum Arbeit aus dem Request ausgelagert wird
- Celery in die App-Factory integrieren
- Eine Task definieren und aufrufen
- Ergebnisse verfolgen und Fehler behandeln