ホームページ >バックエンド開発 >Python チュートリアル >FastAPI が API 呼び出しを並列ではなく逐次実行するのはなぜですか?
FastAPI: API 呼び出しが並列ではなく逐次的に実行される理由
FastAPI は、両方の非同期を使用してエンドポイント (パス操作関数とも呼ばれます) を定義しますデフとデフ。概念的には async def は並列化を示唆しているかもしれませんが、FastAPI は実際にはこれらの関数を異なる方法で処理します:
async def で定義されたエンドポイント:
エンドポイント def で定義:
並列化への影響:
この理解に基づいて、コード例を調べてみましょう:
@app.get("/ping") async def ping(request: Request): print("Hello") time.sleep(5) # This sleeps the event loop for 5 seconds print("bye") return {"ping": "pong!"}
この場合、次のことが発生します:
その結果、応答はシリアルに出力されます。
Hello bye Hello bye
並列化を有効にするには、time.sleep() などの非同期操作を使用します。非同期 def エンドポイントでは使用しないでください。代わりに、次のいずれかのアプローチを適用できます。
以上がFastAPI が API 呼び出しを並列ではなく逐次実行するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。