Задать вопрос
@cfmm

Библиотека aiohttp. Параллельность обработки запросов возможна?

Сделал простой web-сервер с использованием aiohttp 3.3 и Python 3.6.5
По задумке, обработчик запроса должен быть асинхронным и параллельно обрабатывать несколько запросов.
Для проверки одновременно сделал два запроса к серверу и понял, что на деле параллельности обработки не получилось (см. результат ниже)
Что я делаю не так?

from aiohttp import web
import asyncio

async def handler(request):
    print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
    await asyncio.sleep(5)
    return web.json_response({"ok": 1})

app = web.Application()
app.add_routes([web.view('/', handler)])
web.run_app(app, host='0.0.0.0', port=8080)


Сообщения в терминале с интервалом 5 сек.:
2018-05-24 17:49:58
2018-05-24 17:50:03
  • Вопрос задан
  • 575 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Наверняка вы открываете две вкладки в одном браузере и отправляете запросы из них. Но ни Google Chrome, ни Mozila Firefox не будут отправлять второй запрос на тот же адрес, пока не получат ответ на первый. Даже если запустить два окна. А вот IE11 без проблем отправляет одновременно два запроса на один адрес из вкладок. Попробуйте запустить два разных браузера, а ещё лучше используйте для тестов curl.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Zanak
Параллельность не есть асинхронность.
Паралельное исполнение заданий подразумевает, что они исполняются одновременно, ну, почти одновременно.
Асинхронное выполнение - это выполнение, при котором процессор может поработать над другой задачей, пока текущая ожидает завершения долгой операции, типа передачи по сети, ну или работы с диском, например.
aiohttp асинхронный фреймворк, или я что-то упустил?
Ответ написан
Комментировать
@cfmm Автор вопроса
Да, я неправильно выразился. Параллельность не есть асинхронность
aiohttp - асинхронный фреймворк
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы