Поведение aiohttp, когда не читается телоPython

Программы на Python
Ответить
Anonymous
 Поведение aiohttp, когда не читается тело

Сообщение Anonymous »

В моей текущей разработке я отправляю запрос на 50-100 разных серверов одновременно с помощью aiohttp, и мне не нужно читать тело (нужны только status_code и заголовки). Я также не могу использовать запрос HEAD для целей своего приложения.
Мои цели:
  • Уметь использовать пул поддержки активности/соединения с 50-100 упомянутыми мной серверами.
  • Не загружая тело в ОЗУ, а удаляя его.
    < /ul>
    Я знаю, что мне нужно читать тело, чтобы иметь возможность повторно использовать тот же сокет для нового запроса (я знаю, как работает TCP/HTTP).
    Я искал в Интернете такие ключевые слова, как «aiohttp ignore body», «what resp.release()». делает", и углубился в исходный код, но потерял детали. Я также обслуживал локальный сервер (nginx), чтобы проверить, что делает aiohttp. Хотя выглядело так, будто он объединяет соединения, в какой-то момент он пытался закрыть соединение для каждого запроса и создать новое. Это меня смутило.
    Мои вопросы:
  • Когда я выполняю асинхронизацию с session.request( url) как соответственно: и позже не вызывать вещи, которые читают тело, например resp.text(), как с этим справляется aiohttp(контекстные менеджеры)? Действительно ли он читает тело, а затем отбрасывает его? Есть ли исключения?
  • Входит ли в уравнение размер тела в какой-либо момент в этом вопросе? Подобно тому, как размер тела ответа 1 КБ или 1 ГБ влияет на поддержание активности, которого я пытаюсь достичь, кроме самого времени загрузки.
  • Есть ли документированный способ в aiohttp, которым я действительно могу отказаться от сокета вместе с телом?


Подробнее здесь: https://stackoverflow.com/questions/791 ... ading-body
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»