Menu
Coddy logo textTech

Timeouts und Wiederholungen

Lektion 45 von 47 im Kurs Netzwerken mit dem Terminal von Coddy.

Standardmäßig wartet curl sehr lange. In einem Skript ist das ein Fehler: Ein nicht erreichbarer Host lässt deinen Auftrag hängen, bis es jemand bemerkt.

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

--connect-timeout begrenzt, wie lange für den Verbindungsaufbau aufgewendet wird. --max-time begrenzt den gesamten Vorgang. Wird einer der beiden Werte überschritten, wird der Exit-Code 28 zurückgegeben.

Wiederholungen erfordern mehr Umsicht, als es zunächst scheint. Das Wiederholen eines fehlgeschlagenen GET oder PUT ist sicher, da beide idempotent sind. Das Wiederholen eines POST kann einen zweiten Datensatz erstellen, und ein Timeout ist dabei der schlimmste Fall: Du erfährst nie, ob der erste Vorgang verarbeitet wurde.

Wiederhole Lesevorgänge also unbesorgt, und denke nach, bevor du Schreibvorgänge wiederholst. Wenn es nötig ist, bitte den Server um eine Möglichkeit, dies sicher zu machen, etwa einen Idempotenzschlüssel.

challenge icon

Aufgabe

Mittel

Setze ein Zeitlimit für eine Anfrage, die niemals beantwortet wird.

Fordere http://10.255.255.1/ an, eine Adresse, die den Datenverkehr stillschweigend verschluckt, nach 2 Sekunden aufgegeben wird, und gib gave up: gefolgt vom Exit-Code von curl aus.

Erwartete Ausgabe:

gave up: 28

Ohne ein Zeitlimit würde diese Anfrage weit über eine Minute hängen.

Probier es selbst

Terminal
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Netzwerken mit dem Terminal

Übe selbstständig: Terminal-Playground