FastAPI フレームワークを使用して効率的な非同期タスク アプリケーションを構築する

WBOY
リリース: 2023-09-27 10:06:23
オリジナル
1695 人が閲覧しました

FastAPI フレームワークを使用して効率的な非同期タスク アプリケーションを構築する

FastAPI フレームワークを使用して効率的な非同期タスク アプリケーションを構築する

はじめに:
最新の Web アプリケーションでは、電子メールの送信など、非同期タスクは非常に一般的な要件です。 . 、レポートの生成、サードパーティ API の呼び出しなど。従来の同期処理方法ではメインスレッドがブロックされ、ユーザーの待ち時間が長くなってしまいます。アプリケーションのパフォーマンスとユーザー エクスペリエンスを向上させるために、非同期タスクを使用してこれらの時間のかかる操作を処理できます。この記事では、FastAPI フレームワークを使用して効率的な非同期タスク アプリケーションを構築する方法を紹介し、具体的なコード例を示します。

1. FastAPI フレームワークの概要
FastAPI は、高速性と高パフォーマンスの特性を兼ね備えた Python ベースの最新の Web フレームワークです。 FastAPI はリクエストの非同期処理を使用し、非同期タスクを使用してアプリケーションの応答速度とスループットを向上させます。同時に、FastAPIは、APIドキュメントの自動生成、リクエストパラメータの検証、リクエストとレスポンスの処理などの機能も提供し、開発作業を大幅に簡素化します。

2. 非同期タスク アプリケーションの作成

  1. FastAPI と非同期タスク サポート ライブラリのインストール
    まず、FastAPI と非同期タスク サポート ライブラリをインストールする必要があります。次のコマンドを使用できます。
pip install fastapi
pip install aiohttp
ログイン後にコピー
  1. 非同期タスク処理関数を作成する
    次に、非同期タスク処理関数を作成する必要があります。この関数は、電子メールの送信、レポートの生成など、定義した特定の非同期タスク ロジックを処理します。

サンプル コードは次のとおりです。

import asyncio

async def send_email(email: str, content: str):
    # 模拟发送邮件的异步操作
    await asyncio.sleep(3)
    print(f"向邮箱 {email} 发送邮件:{content}")
ログイン後にコピー
  1. FastAPI アプリケーションの作成
    次に、FastAPI アプリケーションを作成し、非同期タスク処理インターフェイスを追加します。

サンプル コードは次のとおりです。

from fastapi import FastAPI
import asyncio

app = FastAPI()

@app.post("/send-email")
async def handle_send_email(email: str, content: str):
    # 创建一个异步任务
    task = asyncio.create_task(send_email(email, content))
    return {"message": "异步任务已启动"}
ログイン後にコピー

上記のコードでは、@app.post デコレータを使用して、POST リクエストを受け入れるルートを定義します。リクエストが到着すると、handle_send_email 関数が実行されます。この関数では、非同期タスク task を作成し、プロンプト メッセージを返します。

  1. FastAPI アプリケーションを実行する
    最後に、次のコマンドを使用して FastAPI アプリケーションを実行します:
uvicorn main:app --reload
ログイン後にコピー

このうち、main は次のとおりです。 FastAPI アプリケーションが保存される Python ファイル。app は FastAPI アプリケーションのインスタンス オブジェクトです。 --reload オプションは、コードが変更されたときにアプリケーションが自動的に再ロードされることを示します。

3. 非同期タスク アプリケーションをテストします。
これで、任意の HTTP ツール (curl、Postman など) を使用して、POST リクエストを /send-email に送信できるようになります。非同期タスク アプリケーションをテストするためのインターフェイス。

サンプル リクエストは次のとおりです。

POST /send-email HTTP/1.1
Host: localhost:8000
Content-Type: application/json

{
    "email": "example@example.com",
    "content": "Hello, World!"
}
ログイン後にコピー

リクエストを受信した後、アプリケーションは電子メール送信ロジックを処理する非同期タスクを作成し、すぐに応答を返します。

結論:
FastAPI フレームワークを使用して効率的な非同期タスク アプリケーションを構築するのは非常に簡単です。非同期タスクの処理を通じて、アプリケーションのパフォーマンスとユーザー エクスペリエンスを向上させることができます。同時に、FastAPI フレームワークは便利なルーティング機能とリクエスト処理機能を提供し、アプリケーション開発作業を容易にします。

概要:
この記事では、FastAPI フレームワークを使用して効率的な非同期タスク アプリケーションを構築する方法を紹介します。具体的なコード例を通じて、非同期タスク処理関数の作成方法、FastAPI アプリケーションの作成方法、電子メール送信用の非同期タスク インターフェイスの実装方法を示します。この記事が、読者が FastAPI フレームワークの使用をすぐに開始し、効率的な非同期タスク アプリケーションを構築するのに役立つことを願っています。

以上がFastAPI フレームワークを使用して効率的な非同期タスク アプリケーションを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート