Таймаут
Таймаут — время, которое программа ждёт ответа, прежде чем считать запрос неудачным.
Обновлено · Редакция Prokso
В большинстве программ отдельно задают время на подключение и время на получение ответа. Если за это время ничего не пришло, запрос обрывается с ошибкой таймаута.
Резидентским и мобильным адресам нужно больше времени, чем серверным: запрос проходит через домашнее устройство или телефон. Слишком короткий таймаут отрежет рабочие адреса.
Слишком длинный таймаут тоже вредит: скрипт будет ждать адрес, который уже вышел из сети. При ротации проще оборвать запрос и повторить его с новым IP.
Причины и решения собраны на странице таймаут прокси.
Какие таймауты есть в программе
Кроме времени на подключение и на ответ, у многих инструментов есть общий лимит на весь запрос. С прокси соединение открывается со шлюзом, и обычно это быстро, а основное ожидание приходится на следующие шаги: пока шлюз добирается до сайта через выходной адрес и пока сайт отвечает.
| Инструмент | Подключение | Ответ или весь запрос |
|---|---|---|
| curl | --connect-timeout 10 | --max-time 60 — весь запрос |
| Python requests | timeout=(10, 30), первое число | второе число — ожидание данных |
Второе число в requests — не лимит на всю загрузку, а самая длинная пауза между порциями данных. Большой файл может загружаться дольше без таймаута, если данные продолжают поступать.
Таймаут — это не то же самое, что код 504
Таймаут означает, что ваша программа за заданное время не получила никакого ответа. Код 504 — это ответ: прокси сообщает, что сайт не ответил вовремя. В первом случае смотрите на свои лимиты и сеть, во втором — на сайт и выходной адрес, см. страницу ошибка 504.
Как повторять запросы после таймаута
На портах 823 и 824 повтор идет с новым IP, поэтому одна-две попытки с короткой паузой обычно имеют смысл. На порту фиксированного IP повтор идет через тот же адрес; если устройство ушло из сети, порт получит новый IP той же страны. Ограничьте число повторов, чтобы скрипт не зациклился на сайте, который не работает.
Таймауты дает и большое количество потоков одновременно. Один план допускает до 1000 одновременных соединений, но число стоит наращивать постепенно. Опции таймаутов в curl описаны в инструкции для curl.
Вопросы и ответы
Какой таймаут ставить для резидентских прокси?
Больше, чем для серверных: запрос идёт через домашнее устройство. Подберите значение на пробных запросах и не ставьте слишком мало.
Что делать, если таймауты частые?
Проверьте строку в проверке прокси, уменьшите количество потоков и выберите страну ближе к сайту.
Резидентские $1.59, мобильные $2.50, серверные $0.65 за 1 ГБ
Регистрация за минуту, доступы сразу после оплаты.