Таймаут

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

Оновлено · Редакція 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 ГБ

Реєстрація за хвилину, доступи одразу після оплати.

Створити акаунт