Kobl Celery til app-factoryen
Konfigurér en broker og Celery-appen.
Kobl Celery til app-factoryen er en gratis Flask Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Flask Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Flask Academy-kurset indeholder 4 lektioner i alt.
Tre dele, der skal forbindes
For at køre Celery skal du bruge tre ting: brokerens URL, en resultatbackend og et Celery-appobjekt, som dine opgaver hører til under.
Vælg en broker
Redis er den nemmeste broker at starte med. Du angiver en URL til Celery, så den ved, hvor jobs skal lægges i og hentes fra køen.
broker_url = "redis://localhost:6379/0"Tilføj en resultatbackend
Hvis du vil læse opgaveresultater senere, skal du angive en resultatbackend. Redis fungerer fint som både broker og backend under udvikling.
result_backend = "redis://localhost:6379/1"Celery-appobjektet
Celery er centreret omkring én Celery()-instans. Opgaver registreres på den, og workere indlæser den for at vide, hvad de skal køre.
from celery import Celery
celery = Celery(__name__)Hvorfor factoryen er vigtig
I app factory-mønsteret indlæses konfigurationen inde i create_app. Celery bør hente sin broker-URL fra den samme konfiguration, ikke have den skrevet direkte i koden.
Læs konfiguration fra Flask
Gem CELERY-indstillinger i din Flask-konfiguration, så udvikling, test og produktion kan være forskellige. Byg derefter Celery ud fra app.config inde i factoryen.
app.config["CELERY_BROKER_URL"] = "redis://localhost:6379/0"En make_celery-hjælpefunktion
Et almindeligt mønster er en make_celery(app)-funktion, der læser app.config og returnerer en konfigureret Celery-instans.
def make_celery(app):
c = Celery(app.import_name)
c.conf.update(app.config)
return cOpgaver har brug for app-kontekst
Opgaver arbejder ofte med databasen eller current_app, som kræver en app-kontekst. Uden den mislykkes disse kald, når workeren kører.
Udvid opgavebasisklassen
Den klassiske løsning pakker hver opgave ind, så den opretter en app-kontekst, før den kører. På den måde kan opgaver bruge Flask-udvidelser sikkert.
To processer, én konfiguration
Webprocessen og workeren er separate, men begge bygger Celery ud fra den samme konfiguration, så de er enige om broker og backend.
Start en worker
Du starter workere fra kommandolinjen og angiver din Celery-instans. Derefter lytter de efter jobs hos brokeren.
celery -A app.celery worker --loglevel=infoHurtigt tjek
Opgaver bruger ofte databasen.
Opsummering
Indstil en broker og en backend, byg en Celery ud fra app.config inde i create_app, og opret en app-kontekst, så opgaver kan bruge Flask. ✅
Lær Python med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 30
- Lektioner
- 120
Ofte stillede spørgsmål
Er lektionen “Kobl Celery til app-factoryen” gratis?
Ja — hele teksten til “Kobl Celery til app-factoryen” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Flask Academy-kurset, skal du opgradere til CoddyKit PRO. Flask Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Kobl Celery til app-factoryen”?
Konfigurér en broker og Celery-appen. Du øver dig i Flask Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Flask Academy?
Der kræves ingen tidligere erfaring. Flask Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Kobl Celery til app-factoryen”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Flask Academy-lektion?
Ja. Alle Flask Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Hvorfor arbejde skal flyttes væk fra requesten
- Kobl Celery til app-factoryen
- Definér og kald en task
- Spor resultater, og håndtér fejl