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() 這樣的非非同步操作不應該 用於非同步定義端點。相反,可以應用以下方法之一:
以上是為什麼 FastAPI 串行執行 API 呼叫而不是並行執行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!