Festlegen des Zeitlimits für die Webseitenantwort mit Wellung

15

Ich benutze ein Tool, um zu überwachen, ob die Webseite läuft.

Das Tool verwendet den curlBefehl intern, um die Ausgabe abzurufen.

Wenn eine Webseite jedoch länger braucht, um zu antworten, kommt es zu einem TIMEOUTFehler. Es gibt keine Möglichkeit, das Timeout des Tools zu verlängern.

Gibt es eine Möglichkeit, das Zeitlimit für eine Antwort von einer Webseite festzulegen / zu ändern?

Gibt es eine Variable, die geändert werden kann?

user80040
quelle

Antworten:

21

Sie können folgende -mOption verwenden:

-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.   See
              also the --connect-timeout option.

              If this option is used several times, the last one will be used.

Dies beinhaltet die Verbindungszeit. Wenn Sie diese separat angeben möchten, verwenden Sie die --connect-timeoutOption.

cuonglm
quelle
4

Normalerweise tun Sie dies mit einer Option in der Befehlszeile, wenn curlaufgerufen wird. Da Sie dies jedoch nicht ändern können, gibt es eine andere Möglichkeit: Sie können eine Konfigurationsdatei für erstellen curl. Unter Unix curlwird zunächst im Ausgangsverzeichnis des Benutzers, der curl ausführt, nach einer aufgerufenen Datei gesucht .curlrc. Erstellen Sie diese Datei mit der Linie

connect-timeout = 10

um das Zeitlimit auf 10 Sekunden zu reduzieren. Oder Sie können eine maximale Zeit für den gesamten Vorgang festlegen, mit der Option max-time:

max-time = 10
Jenny D
quelle
Das ist eine großartige Idee. Aber ich habe mich auch gefragt, ob es eine bestimmte env-Variable dafür gibt oder etwas, das über das Backend wie ulimit eingestellt werden kann, um die FD-Anzahl zu erhöhen.
user80040
Ich kann so etwas nicht in der Manpage finden.
Jenny D
4

curl hat eine "connect timeout" Option:

--connect-timeout <seconds>

Wenn es sich bei Ihrem "Tool" um ein Skript handelt, können Sie es manuell dort bearbeiten. Aber /unix//a/148926/77959 ist noch besser - bearbeite die curl-config!

flowtron
quelle
Ya..das Hinzufügen der Konfiguration ist eine ziemlich gute Idee..aber ich habe mich auch gefragt, ob es eine bestimmte env-Variable dafür gibt oder etwas, das über das Backend wie ulimit eingestellt werden kann, um die FD-Anzahl zu erhöhen.
user80040
@ user80040 Nein, das gibt es nicht. Es gibt kein "Backend", das Timeout ist keine Systembeschränkung. Curl führt die Webanforderung aus und entscheidet sich aufgrund seiner Konfiguration für eine Zeitüberschreitung.
Gilles 'SO- hör auf böse zu sein'
0

Von können CurlSie diese Option verwenden --connect-timeout: Maximale Zeit in Sekunden, die Sie für die Verbindung zum Server benötigen. Dies begrenzt nur die Verbindungsphase. Sobald curleine Verbindung hergestellt wurde, ist diese Option nicht mehr von Nutzen. Siehe auch die --max-timeOption.

Thushi
quelle