Параллельное выполнение¶
FastHTTP автоматически выполняет все зарегистрированные запросы параллельно.
Как это работает¶
При вызове app.run(), FastHTTP:
- Собирает все зарегистрированные маршруты
- Создает асинхронную задачу для каждого маршрута
- Выполняет все задачи параллельно с помощью
asyncio.gather() - Ожидает завершения всех запросов
- Логирует результаты
Пример¶
from fasthttp import FastHTTP
from fasthttp.response import Response
app = FastHTTP()
@app.get(url="https://jsonplaceholder.typicode.com/posts/1")
async def get_post(resp: Response) -> dict:
return resp.json()
@app.get(url="https://jsonplaceholder.typicode.com/users/1")
async def get_user(resp: Response) -> dict:
return resp.json()
@app.get(url="https://jsonplaceholder.typicode.com/comments/1")
async def get_comment(resp: Response) -> dict:
return resp.json()
if __name__ == "__main__":
# Все три запроса выполнятся параллельно
app.run()
Сравнение производительности¶
Последовательное выполнение¶
Параллельное выполнение (FastHTTP)¶
Вывод:
INFO | fasthttp | FastHTTP started
INFO | fasthttp | Sending 3 requests
INFO | fasthttp | GET https://jsonplaceholder.typicode.com/posts/1 200 150ms
INFO | fasthttp | GET https://jsonplaceholder.typicode.com/users/1 200 120ms
INFO | fasthttp | GET https://jsonplaceholder.typicode.com/comments/1 200 110ms
INFO | fasthttp | Done in 0.15s
Когда это важно¶
Параллельное выполнение особенно полезно при:
- Множественных вызовах API
- Получении данных из нескольких сервисов
- Обработке нескольких ресурсов
Чем больше запросов, тем больше времени экономится.