問:為什麼 FastAPI API 呼叫以串行方式而不是並行方式運行?
A:根據FastAPI的文檔,當使用def 代替async def 定義路徑操作函數,它在外部線程池中運行,然後等待,而不是直接呼叫。這樣做是為了防止阻塞伺服器。
其他並行執行的注意事項:
非同步def 與def 端點:
函數在與外部執行緒池分開的執行緒中運行;將串列處理,除非在事件循環之外執行。
使用阻塞操作:
如果 async def端點包含阻塞操作並且不等待完成後,它將阻塞事件循環並處理請求
使用asyncio的loop.run_in_executor()或asyncio.to_thread()在單獨的執行器或執行緒中執行阻塞任務。
以上是為什麼 FastAPI 以串行方式而不是並行方式運行 API 呼叫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!