我使用 Python 中的 FastAPI 构建了后端,但无法使特定端点与其他请求同时工作
这是我想从我的一台路由器共享的端点。重要提示:此调用通常需要 10 秒左右......并且在“等待”期间,所有其他端点都将挂起,直到此调用完成。
@router.post("/create_payment")
async def create_payment(url: str, data: dict):
async with aiohttp.ClientSession(headers=headers) as session:
try:
async with session.post(url, data=pdata, timeout=30,) as resp:
res_body = await resp.text()
if resp.status == 200:
return True, res_body
return False, "Http " + str(resp.status) + ": " + res_body
except Exception as e:
return False, str(e)
因此,如果我调用此端点,然后调用另一个通常需要 0.2 秒的端点,那么它将在返回值之前等待该端点的所有 10 秒
我的端点更加复杂,我删除了所有步骤和其他实例,以便调试并找出我的后端被阻止的位置。
我什至只是从该端点删除了所有代码并放置了一个
@router.post("/create_payment")
async def create_payment(url: str, data: dict):
#JUST TO MAKE IT WAIT AND CALL OTHER ENDPOINT
await asyncio.sleep(10)
return('I awaited')
所以删除所有代码,只是将其设为虚拟端点...但是为了测试,我能够同时调用其他端点,但是一旦我输入上面的代码,它就不起作用了
fastapi 中有什么我应该考虑的吗?或者在 aiohttp 或其他什么中?
这是可能的,但需要这样做。