Zum Inhalt

Hintergrundaufgaben

Starlette enthält eine Funktion für Hintergrundaufgaben. BackgroundTask Kategorien.

Eine Hintergrundaufgabe sollte an die Antwort angehängt und nur einmal ausgeführt werden, nachdem die Antwort gesendet wurde.

Hintere Aufgaben

Wird verwendet, um der Antwort eine einzelne Hintergrundaufgabe hinzuzufügen.

Unterzeichnung: BackgroundTask(func, *args, **kwargs)

von starlette. applications import Starlette
von starlette. responses import JSONResponse
von starlette. routing import Route
von starlette. background import BackgroundTask


...

async def signup (Anforderung):
    Frage von json = await request ()
    username = data 'username'[[Datei: Benutzername]]
    E-Mail = data-Datei 'E-Mail']
    Aufgabe = BackgroundTask (send_welcome_email, to_address = email)
    Botschaft = {'status': 'Signup successful'}
    Zurück zu JSONResponse (message, background = Task)

async def send_welcome_email (to_address): Nachricht senden_willkommen_E-Mail (zu_Adresse):
    ...


Die Bahn […]
    ...
    Route ('/user/signup'], Endpoint = signup, Methods = VMware Post '][Bearbeiten]
]

Starlette (Routen = Routen) Bearbeiten

Hintere Aufgaben

Wird verwendet, um mehrere Hintergrundaufgaben zu einer Antwort hinzuzufügen.

Unterzeichnung: BackgroundTasks(tasks=[])

von starlette. applications import Starlette
von starlette. responses import JSONResponse
von starlette. background import BackgroundTasks

async def signup (Anforderung):
    Frage von json = await request ()
    username = data 'username'[[Datei: Benutzername]]
    E-Mail = data-Datei 'E-Mail']
    Aufgaben = BackgroundTasks ()
    tasks. add_task (send_welcome_email, to_address = email)(Aufgabe_Willkommen_Email, zu_Adresse = E-Mail)
    tasks. add_task (send_admin_notification, username = Benutzername)
    Botschaft = {'status': 'Signup successful'}
    return JSONResponse (Nachricht, Hintergrund = Tasks)

async def send_welcome_email (to_address): Nachricht senden_willkommen_E-Mail (zu_Adresse):
    ...

async def send_admin_notification (Benutzername):
    ...

Die Bahn […]
    Route ('/user/signup'], Endpoint = signup, Methods = VMware Post '][Bearbeiten]
]

Starlette (Routen = Routen) Bearbeiten

!!! Wichtige Aufgaben werden sequenziell ausgeführt, wenn eine der Aufgaben eine Ausnahme auslöst, haben die nachfolgenden Aufgaben keine Möglichkeit zur Ausführung.