全书目录

第二篇:FastAPI 完全指南 —— 软件城市政务大厅宇宙

第十一章:async def 和 def —— 大厅是并发办理,不是一个人办完整队

1 分钟 157 字 第 57 / 962 个阅读单元

FastAPI 官方对 async 的建议非常实用:

  • 如果你调用的库要 await,那就用 async def
  • 如果你调用的是传统阻塞库,没有 await,那就用普通 def
  • defasync def 可以混用
py
@app.get("/async-report")
async def async_report():
    result = await some_async_http_client.get("/remote-service")
    return {"remote": result.json()}

@app.get("/sync-report")
def sync_report():
    data = some_blocking_library.read_legacy_file()
    return {"size": len(data)}

不要把 async 神化成永远更快。 它更准确的意义是:更适合等待型 I/O 任务的并发调度。