Implementando tarefas em segundo plano
Sua API de análise de sentimento está recebendo solicitações para processar lotes com centenas de avaliações de uma vez. Para lidar com isso de forma eficiente, sem fazer o usuário esperar, você vai implementar o processamento em segundo plano, para que as solicitações sejam processadas após o envio da resposta ao cliente.
Este exercício faz parte do curso
Colocando IA em Produção com FastAPI
Instruções do exercício
- Importe a classe de tarefas em segundo plano de
fastapi. - Declare o parâmetro
background_taskspara tratar a solicitação como uma tarefa executada em segundo plano. - Agende a tarefa de processamento da análise dos textos das avaliações usando a função
process_reviews.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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"}