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

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

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

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

PPS grequests не вариант в этом случае.

2 ответа

Решение

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

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

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

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

Другие вопросы по тегам