我有一个问题。如果我使用uvicorn将aioredis与FastAPI一起使用,并在——loop参数中设置uvloop, aioredis将使用uvloop或纯asyncio吗?
from fastapi import FastAPI
app = FastAPI()
@app.get('/get/{key}')
async def get_from_redis(key):
redis = aioredis.from_url('redis://127.0.0.1')
value = await redis.get(key) # uses uvloop or pure asyncio?
return {'response': value}
uvicorn main:app --workers 2 --loop uvloop
将使用uvloop
。
Uvicorn在启动应用程序之前运行asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
。