Конвейерная обработка POST-запросов с помощью python-запросов
Предполагая, что я могу проверить, что куча POST
запросы фактически логически независимы, как я могу настроить конвейерную передачу HTTP, используя python-requests
и заставить его позволить POST
запросы в конвейере?
У кого-нибудь есть рабочий пример?
PS за дополнительные баллы, как обрабатывать ошибки для невыполненных запросов, если конвейер внезапно обрывается?
PPS grequests
не вариант в этом случае.
2 ответа
requests
Библиотека не поддерживает HTTP конвейерную обработку.
Вы можете приблизить конвейеризацию с помощью grequests
что облегчает параллельное выполнение многих запросов, но каждый параллельный запрос все равно будет использовать новое TCP-соединение.
(requests
выполняет пул соединений, сохраняя соединение TCP открытым, если это разрешает удаленный сервер, но это помогает только для последовательных соединений, а запрос и ответ по-прежнему должны чередоваться).
Конвейерные запросы могут быть выполнены с помощью встроенного httplib, но только путем доступа к объектам соединения и ответа ниже их открытого интерфейса. Этот фрагмент демонстрирует.