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.