Конвейерная обработка POST-запросов с помощью python-запросов

Предполагая, что я могу проверить, что группа POST запросов на самом деле логически независима, как я могу настроить конвейерную обработку HTTP с использованием python-requests и заставить ее разрешить POST запросы в конвейере?

У кого-нибудь есть рабочий пример?

P.S. для дополнительных баллов, как обрабатывать ошибки для невыполненных запросов, если конвейер внезапно сломается?

П.П.С. grequests в данном случае не вариант.


person Dima Tisnek    schedule 16.03.2015    source источник
comment
Не могли бы вы пояснить, что вы подразумеваете под конвейером? Вы говорите здесь об конвейерной обработке HTTP? Почему grequests не вариант?   -  person Martijn Pieters    schedule 16.03.2015
comment
Обратите внимание, что requests не поддерживает конвейерную обработку HTTP; использование grequests будет только приблизительным.   -  person Martijn Pieters    schedule 16.03.2015
comment
@MartijnPieters о, мой google-fu подвел меня ... Пожалуйста, преобразуйте это в ответ для принятия.   -  person Dima Tisnek    schedule 16.03.2015


Ответы (2)


Библиотека requests не поддерживает конвейерную обработку HTTP.

Вы можете аппроксимировать конвейеризацию, используя grequests, что упрощает параллельное выполнение многих запросов, но каждый параллельный запрос по-прежнему будет использовать новое TCP-соединение.

(requests выполняет соединения пула, сохраняя TCP-соединение открытым, если удаленный сервер разрешает это, но это помогает только для последовательных соединений, а запрос и ответ по-прежнему должны чередоваться).

person Martijn Pieters    schedule 16.03.2015

Конвейерные запросы можно выполнять с помощью встроенной httplib, но только путем доступа к объектам соединения и ответа ниже их общедоступного интерфейса. Этот фрагмент демонстрирует.

person A. Coady    schedule 29.05.2015