Curl-Timeouts in PHP konfigurieren
Eine häufige Herausforderung beim Ausführen von Curl-Anfragen für große Datenmengen ist die längere Zeit, die die Datenbank benötigt, um eine zu generieren Antwort. Um dieses Problem zu beheben, versuchen Entwickler häufig, lange Curl-Timeouts festzulegen. Es ist jedoch wichtig, den richtigen Ansatz zum Festlegen von Timeouts in Curl zu verstehen.
CURLOPT_CONNECTTIMEOUT vs. CURLOPT_TIMEOUT
Die offizielle PHP-Dokumentation (http://www.php. net/manual/en/function.curl-setopt.php) beschreibt zwei unterschiedliche Zeitüberschreitungen Optionen:
Im bereitgestellten Codeausschnitt lautet CURLOPT_TIMEOUT auf 1000 gesetzt, aber die Anfrage wird vorzeitig beendet, bevor die angegebene Dauer erreicht ist. Dies deutet darauf hin, dass das Timeout nicht richtig konfiguriert ist.
Empfohlene Konfiguration:
Basierend auf der Dokumentation ist der geeignete Ansatz wie folgt:
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0); curl_setopt($ch, CURLOPT_TIMEOUT, 400); //timeout in seconds
Indem wir CURLOPT_CONNECTTIMEOUT auf 0 setzen, ermöglichen wir das unbegrenzte Warten auf den Verbindungsaufbau. Gleichzeitig begrenzt das Festlegen von CURLOPT_TIMEOUT auf einen bestimmten Wert die maximale Ausführungszeit.
Zusätzliche Überlegung:
Neben der Konfiguration von Curl-Timeouts ist es wichtig, die Ausführungszeit des zu verlängern PHP-Skript selbst mit set_time_limit(). Indem Sie den Wert auf 0 setzen, gewähren Sie dem Skript effektiv unbegrenzte Ausführungszeit:
set_time_limit(0);// to infinity for example
Durch die Implementierung dieser Anpassungen sollte sichergestellt werden, dass Ihre Curl-Anfragen die angegebenen Zeitüberschreitungen einhalten und genügend Zeit für die Generierung von Datenbankantworten lassen.
Das obige ist der detaillierte Inhalt vonWie konfiguriere ich Curl-Timeouts in PHP richtig, um langsame Datenbankantworten zu verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!