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中文网其他相关文章!