Triển khai background tasks
API phân tích cảm xúc của bạn đang nhận yêu cầu xử lý theo lô hàng trăm đánh giá cùng lúc. Để xử lý hiệu quả mà không bắt người dùng phải chờ, bạn sẽ triển khai xử lý tác vụ chạy nền để các yêu cầu được tiếp tục xử lý sau khi gửi phản hồi cho client.
Bài tập này là một phần của khóa học
Triển khai AI vào môi trường sản xuất với FastAPI
Hướng dẫn bài tập
- Import lớp background task từ
fastapi. - Khai báo tham số
background_tasksđể xử lý yêu cầu như một tác vụ chạy nền. - Lên lịch tác vụ phân tích văn bản đánh giá bằng hàm
process_reviews.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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"}