Implementando tarefas em segundo plano
A tua API de análise de sentimentos está recebendo pedidos para processar centenas de avaliações de uma vez só. Para lidar com isso de forma eficiente, sem deixar os usuários esperando, você vai implementar o processamento de tarefas em segundo plano, para que as solicitações sejam processadas depois de enviar uma resposta para o cliente.
Este exercício faz parte do curso
Implementando IA na produção com FastAPI
Instruções do exercício
- Importa a classe de tarefa em segundo plano de
fastapi
. - Declare o parâmetro
background_tasks
para processar a solicitação como uma tarefa em segundo plano. - Agende a tarefa de processamento de 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"}