Таймаут

Таймаут — время, которое программа ждёт ответа, прежде чем считать запрос неудачным.

Обновлено · Редакция Prokso

В большинстве программ отдельно задают время на подключение и время на получение ответа. Если за это время ничего не пришло, запрос обрывается с ошибкой таймаута.

Резидентским и мобильным адресам нужно больше времени, чем серверным: запрос проходит через домашнее устройство или телефон. Слишком короткий таймаут отрежет рабочие адреса.

Слишком длинный таймаут тоже вредит: скрипт будет ждать адрес, который уже вышел из сети. При ротации проще оборвать запрос и повторить его с новым IP.

Причины и решения собраны на странице таймаут прокси.

Какие таймауты есть в программе

Кроме времени на подключение и на ответ, у многих инструментов есть общий лимит на весь запрос. С прокси соединение открывается со шлюзом, и обычно это быстро, а основное ожидание приходится на следующие шаги: пока шлюз добирается до сайта через выходной адрес и пока сайт отвечает.

ИнструментПодключениеОтвет или весь запрос
curl--connect-timeout 10--max-time 60 — весь запрос
Python requeststimeout=(10, 30), первое числовторое число — ожидание данных

Второе число в requests — не лимит на всю загрузку, а самая длинная пауза между порциями данных. Большой файл может загружаться дольше без таймаута, если данные продолжают поступать.

Таймаут — это не то же самое, что код 504

Таймаут означает, что ваша программа за заданное время не получила никакого ответа. Код 504 — это ответ: прокси сообщает, что сайт не ответил вовремя. В первом случае смотрите на свои лимиты и сеть, во втором — на сайт и выходной адрес, см. страницу ошибка 504.

Как повторять запросы после таймаута

На портах 823 и 824 повтор идет с новым IP, поэтому одна-две попытки с короткой паузой обычно имеют смысл. На порту фиксированного IP повтор идет через тот же адрес; если устройство ушло из сети, порт получит новый IP той же страны. Ограничьте число повторов, чтобы скрипт не зациклился на сайте, который не работает.

Таймауты дает и большое количество потоков одновременно. Один план допускает до 1000 одновременных соединений, но число стоит наращивать постепенно. Опции таймаутов в curl описаны в инструкции для curl.

Вопросы и ответы

Какой таймаут ставить для резидентских прокси?

Больше, чем для серверных: запрос идёт через домашнее устройство. Подберите значение на пробных запросах и не ставьте слишком мало.

Что делать, если таймауты частые?

Проверьте строку в проверке прокси, уменьшите количество потоков и выберите страну ближе к сайту.

Резидентские $1.59, мобильные $2.50, серверные $0.65 за 1 ГБ

Регистрация за минуту, доступы сразу после оплаты.

Создать аккаунт