我有一个挑战,
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
,因为我似乎没有这样的奢侈,我的工作策略是什么这样的?