Home > PHP > cURL Timeout setzen (Server nicht erreichbar)

cURL Timeout setzen (Server nicht erreichbar)

Mit dem Programm cURL kann eine Verbindung zu einem anderen Server aufgebaut werden. In meinem früheren Post zu diesem Thema habe ich beschrieben wie das in einem PHP Script im Detail auszusehen hat.  Allerdings sollte man beachten, dass man das Setzen eines Timeouts nicht vergisst – sonst kann die eigene Webseite hängen.

Wenn ein Timeout nicht gesetzt wurde und man Daten empfangen will, dann kann es sehr schnell passieren, dass bei Ausfall des fremden Servers die eigene Seite nicht mehr lädt bzw. dafür sehr lange braucht – je nach Serverkonfiguration ist dies unterschiedlich. Der Grund ist ist folgender: Per Default ist bei cURL keine Timeout gesetzt und das jeweilige Script wartet dann auf eine Antwort (Response) vergeblich, wenn die Gegenseite in diesem Moment down und nicht mehr erreichbar ist.

Will man in solchen Fällen Daten wie XML, CSV oder einfache Strings beispielsweise per Schnittstelle beziehen, dann sollte folgende cURL-Konstante gesetzt sein:

oder

CURLOPT_TIMEOUT_MS setzt die maximale Anzahl der Milisekunden, welche erlaubt cURL-Funktionen auszuführen – zum Beispiel curl_exec(). Im oberen Befehl darf die Funktion 750 Milisekunden ausgeführt werden. Im unteren Beispiel in der Konstante CURLOPT_TIMEOUT wird ein Timeout in Sekunden gesetzt. Je nach Bedarf und vorallem Datengröße und Datenmenge  – auch unter Berücksichtigung der Antwortzeiten (Ladezeit) des anderen Servers – sollte man die Timeoutangabe anpassen.

  1. Bisher keine Kommentare
  1. Bisher keine Trackbacks