Timeout

Timeout to czas, przez jaki program czeka na odpowiedź, zanim uzna żądanie za nieudane.

Zaktualizowano · Redakcja Prokso

W większości programów osobno ustawia się czas na połączenie i czas na otrzymanie odpowiedzi. Jeśli w tym czasie nic nie przyszło, żądanie zostaje przerwane z błędem timeoutu.

Adresy rezydencjalne i mobilne potrzebują więcej czasu niż serwerowe: żądanie przechodzi przez urządzenie domowe lub telefon. Zbyt krótki timeout odetnie działające adresy.

Zbyt długi timeout też szkodzi: skrypt będzie czekał na adres, który już wyszedł z sieci. Przy rotacji prościej przerwać żądanie i powtórzyć je z nowym IP.

Przyczyny i rozwiązania zebrano na stronie timeout proxy.

Jakie timeouty ma program

Oprócz czasu na połączenie i na odpowiedź wiele narzędzi ma łączny limit na całe żądanie. Przy proxy połączenie otwiera się z bramką i zwykle trwa to krótko, a najwięcej czekania przypada na kolejne kroki: gdy bramka dociera do strony przez adres wyjściowy i gdy strona odpowiada.

NarzędziePołączenieOdpowiedź lub całe żądanie
curl--connect-timeout 10--max-time 60, całe żądanie
Python requeststimeout=(10, 30), pierwsza liczbadruga liczba, czekanie na dane

Druga liczba w requests to nie limit na całe pobieranie, lecz najdłuższa przerwa między porcjami danych. Duży plik może pobierać się dłużej bez timeoutu, dopóki dane napływają.

Timeout to nie to samo co kod 504

Timeout oznacza, że Twój program w ustawionym czasie nie dostał żadnej odpowiedzi. Kod 504 to odpowiedź: proxy informuje, że strona nie odpowiedziała na czas. W pierwszym przypadku sprawdź swoje limity i sieć, w drugim stronę i adres wyjściowy; zobacz stronę błąd 504.

Jak powtarzać żądania po timeoucie

Na portach 823 i 824 powtórka wychodzi z nowym IP, więc jedna lub dwie próby z krótką przerwą zwykle mają sens. Na porcie stałego IP powtórka idzie przez ten sam adres; jeśli urządzenie wyszło z sieci, port dostaje nowy IP z tego samego kraju. Ogranicz liczbę powtórzeń, aby skrypt nie zapętlił się na stronie, która nie działa.

Timeouty powoduje też zbyt wiele wątków naraz. Jeden plan pozwala na 1000 jednoczesnych połączeń, ale liczbę lepiej zwiększać stopniowo. Opcje timeoutów w curl opisano w instrukcji dla curl.

Pytania i odpowiedzi (FAQ)

Jaki timeout ustawić dla proxy rezydencjalnych?

Większy niż dla serwerowych: żądanie idzie przez urządzenie domowe. Dobierz wartość na próbnych żądaniach i nie ustawiaj zbyt małej.

Co zrobić, gdy timeouty są częste?

Sprawdź linię w sprawdzarce proxy, zmniejsz liczbę wątków i wybierz kraj bliżej strony.

Rezydencjalne $1.59, mobilne $2.50, serwerowe $0.65 za 1 GB

Rejestracja w minutę, dostęp od razu po płatności.

Utwórz konto