Таймаут
Таймаут — час, який програма чекає на відповідь, перш ніж вважати запит невдалим.
Оновлено · Редакція 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 ГБ
Реєстрація за хвилину, доступи одразу після оплати.