始める無料で始める

バックグラウンドタスクの実装

感情分析 API に、数百件のレビューを一括処理するリクエストが届くようになりました。ユーザーを待たせることなく効率的に処理するために、クライアントにレスポンスを返した後もリクエストを処理し続けるバックグラウンドタスク処理を実装しましょう。

この演習はコースの一部です

FastAPI を使った AI のプロダクション環境へのデプロイ

コースを見る

演習の手順

  • バックグラウンドタスク用のクラスを fastapi からインポートします。
  • リクエストをバックグラウンドで実行するタスクとして処理するため、background_tasks パラメータを宣言します。
  • process_reviews 関数を使用して、レビューのテキストを分析する処理タスクをスケジュールします。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# 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"}
コードを編集して実行