Implementace úloh na pozadí
Tvoje API pro analýzu sentimentu začíná dostávat požadavky na zpracování stovek recenzí najednou. Aby uživatelé nemuseli čekat, implementuješ zpracování úloh na pozadí – požadavky se tak budou zpracovávat až po odeslání odpovědi klientovi.
Toto cvičení je součástí kurzu
Nasazení AI do produkce s FastAPI
Pokyny k cvičení
- Importuj třídu pro úlohy na pozadí z
fastapi. - Deklaruj parametr
background_tasks, který zpracuje požadavek jako úlohu běžící na pozadí. - Naplánuj úlohu analýzy textů recenzí pomocí funkce
process_reviews.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Import the background task class
from fastapi import ____
# Create a background task dependency
@app.post("/analyze_batch")
async def analyze_batch(
reviews: Reviews,
background_tasks: ____
):
async def process_reviews(texts: List[str]):
for text in texts:
result = await asyncio.to_thread(sentiment_model, text)
print(f"Processed: {result[0]['label']}")
# Add the task of analysing reviews' texts to the background
background_tasks.____(process_reviews, reviews.texts)
return {"message": "Processing started"}