Ja.
Timeout-Parameter
curl
hat zwei Möglichkeiten: --connect-timeout
und --max-time
.
Zitat aus der Manpage:
--connect-timeout <seconds>
Maximum time in seconds that you allow the connection to the
server to take. This only limits the connection phase, once
curl has connected this option is of no more use. Since 7.32.0,
this option accepts decimal values, but the actual timeout will
decrease in accuracy as the specified timeout increases in deci‐
mal precision. See also the -m, --max-time option.
If this option is used several times, the last one will be used.
und:
-m, --max-time <seconds>
Maximum time in seconds that you allow the whole operation to
take. This is useful for preventing your batch jobs from hang‐
ing for hours due to slow networks or links going down. Since
7.32.0, this option accepts decimal values, but the actual time‐
out will decrease in accuracy as the specified timeout increases
in decimal precision. See also the --connect-timeout option.
If this option is used several times, the last one will be used.
Standardeinstellungen
Hier (unter Debian) hört es nach 2 Minuten auf, eine --connect-timeout
Verbindung herzustellen , unabhängig von der mit angegebenen Zeit, und obwohl der Standardwert für das Verbindungs-Timeout laut Makro in lib / connect.h 5 Minuten zu sein scheint .DEFAULT_CONNECT_TIMEOUT
Ein Standardwert für --max-time
scheint nicht vorhanden zu sein, sodass curl
auf eine Antwort für immer gewartet werden muss, wenn die erste Verbindung erfolgreich ist.
Was zu benutzen?
Sie interessieren sich wahrscheinlich für die letztere Option --max-time
. Stellen Sie für Ihren Fall 900
(15 Minuten) ein.
Die Angabe einer Option --connect-timeout
für 60
(eine Minute) könnte ebenfalls eine gute Idee sein. Andernfalls curl
wird versucht, immer wieder eine Verbindung herzustellen, anscheinend mit einem Backoff-Algorithmus.