Menu
Coddy logo textTech

Limity czasu i ponowienia

Lekcja 45 z 47 w kursie Sieci komputerowe w terminalu w Coddy.

Domyślnie curl czeka bardzo długo. W skrypcie to błąd: jeden nieosiągalny host i zadanie zawiesza się, dopóki ktoś tego nie zauważy.

curl -s --max-time 5 --connect-timeout 2 URL

--connect-timeout ogranicza czas na nawiązanie połączenia. --max-time ogranicza czas trwania całej operacji. Przekroczenie któregokolwiek z tych limitów powoduje zwrócenie kodu wyjścia 28.

Ponawianie prób wymaga większej ostrożności, niż mogłoby się wydawać. Ponowienie nieudanego żądania GET lub PUT jest bezpieczne, ponieważ oba są idempotentne. Ponowienie żądania POST może utworzyć drugi rekord, a przekroczenie limitu czasu to najgorszy przypadek: nie dowiesz się, czy pierwsze żądanie zostało przetworzone.

Dlatego bez obaw ponawiaj odczyty, a przed ponowieniem zapisów dobrze się zastanów. Gdy musisz je ponowić, poproś serwer o sposób, który zapewni bezpieczeństwo, na przykład klucz idempotencji.

challenge icon

Wyzwanie

Średni

Ustaw limit czasu dla żądania, na które nigdy nie nadejdzie odpowiedź.

Wyślij żądanie do http://10.255.255.1/, adresu, który po cichu pochłania ruch, przerwij po 2 sekundach i wypisz gave up: , a następnie kod wyjścia curl.

Oczekiwany wynik:

gave up: 28

Bez limitu czasu to żądanie zawisłoby na znacznie ponad minutę.

Spróbuj swoich sił

Terminal
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Sieci komputerowe w terminalu

Poćwicz samodzielnie: Edytor online Terminal