async/await 似乎在阻止 FastAPI 中的请求

问题描述 投票:0回答:0

我有一个挑战,

async
/
await
阻止 FastAPI 中的其他请求。我的代码曾经在
def
函数中很好地调用请求。例如:

someRequestsApis = APIRouter()

someRequestsApis.get("/something/")
def getThings():
   return list(things.find())

事情会以这种格式运作良好。现在,我发现自己出于某种原因不得不从

pymongo
切换到
AsyncIOMotorClient
。问题是如果不使用
async
/
await
,我就无法在我的请求中运行电机数据库api。曾经是什么:

def getThings():
   return list(things.find())

现在应该是:

async def getThings():
   return await things.find().to_list()

即使是应该处理其中一些逻辑的后台任务也必须是异步的,但请求会被阻塞。我已经搜索了这个问题的答案,但答案似乎表明解决方案必须是在我的请求中删除

async
/
await
,因为我似乎没有这样的奢侈,我的工作策略是什么这样的?

asynchronous async-await fastapi motorengine
© www.soinside.com 2019 - 2024. All rights reserved.