Junior — Middle
119
FastAPI-да асинхронды және синхронды маршруттар қандай айырмашылықта және бұл сервистің жұмысында қалай әсер етеді?
Сұралған компаниялар
TEEZ
AI-дан жауап
sobes.tech AI
FastAPI-да маршруттарды синхронды (def) немесе асинхронды (async def) деп анықтауға болады.
-
Синхронды маршруттар кезек-кезек орындалады және сұраныс өңделгенше ағымдағы ағынды блоктайды. Бұл қарапайым операциялар немесе жоғары параллелизм қажет емес кезде қолайлы.
-
Асинхронды маршруттар
asyncжәнеawaitпайдалана отырып, блокталмайтын операцияларды орындауға мүмкіндік береді. Бұл әсіресе I/O операциялары (мысалы, дерекқор сұраулары, сыртқы API шақырулар) үшін пайдалы, себебі басқа сұраныстарды күтпей өңдеуге мүмкіндік береді.
Қызметке әсері:
- Асинхронды маршруттар жоғары жүктеме кезінде өнімділікті және масштабталуды арттырады.
- Синхронды маршруттар қарапайым, бірақ ауыр жүктеме кезінде шектеуші бола алады.
Асинхронды маршруттың мысалы:
from fastapi import FastAPI
import asyncio
app = FastAPI()
@app.get("/async")
async def async_route():
await asyncio.sleep(1) # асинхронды операцияны имитациялау
return {"message": "Асинхронды жауап"}
@app.get("/sync")
def sync_route():
import time
time.sleep(1) # блоктайтын операция
return {"message": "Синхронды жауап"}