FastAPI(63)- Concurrency and async / await 并发、异步/等待
FastAPI(63)- Concurrency and async / await 并发、异步/等待
如果使用的第三方库说明调用它们要通过 await
@app.get('/')
async def read_results():
results = await some_library()
return results
await 只能在 async def 函数中使用
注意
@app.get('/')
def results():
results = some_library()
return results
- 如果应用程序(以某种方式)不必与其他任何东西通信并等待它响应,可以使用 async def(就是异步函数啦)
- 如果不知道的话,使用普通 def
- 可以根据需要在路径操作函数中混合使用 def 和 async def
- 无论如何,在上述任何一种情况下,FastAPI 仍然会异步工作并且非常快
- 但是按照上面的步骤,它将能够做一些性能优化
路径操作函数
- 这同样适用于依赖项
- 如果依赖项是标准 def 函数而不是 async def,则它在外部线程池中运行
子依赖
- 可以有多个相互依赖的依赖项和子依赖项(作为函数定义的参数)
- 其中一些可能是用 async def 创建的,有些可能是用普通 def 创建的
- 使用普通 def 创建的那些将在外部线程池上调用,而不是被“等待”
比较概念性的东西,还是等实际使用时再补充代码栗子吧
- 本文作者: 小菠萝测试笔记
- 本文链接: