Timeout Problem mit fsockopen
-
Tach,
ab und an bekomme ich bei folgendem Code ein Timeout.
Ich mache eine Kommunikation zwischen zwei meiner Domains.
Da das Problem nur sehr selten auftaucht, muss wohl die Domain woher ich die Daten möchte dessen Server "überlastet" sein.Gibt es eine Chance das nicht im Timeout enden zu lassen und bei Fehlschlag die Abfrage neu zu starten?
$fp = @fsockopen($host, $port, $errno, $errstr, 5); if (!$fp) return false; fputs($fp, $message); $response = ""; while (!feof($fp)) { $response .= fgets($fp, 1024); } fclose($fp);
-
dieses problem wurde auch bei mysqldatenbankbackups gemacht....
die habens da gelöst das sie immer wieder schön refreshed haben nacvh einer bestimmten zeit... somit wurde kein timeout error gemeldez... hoffe das hilft dir weiter
-
Wenn safe_mode deaktiviert ist:
set_time_limit (86400); // 1 Tag (nie unendlich, falls mal was schief läuft)ansonsten musst du mit dem Timeout auskommen.
-
BG-World schrieb:
die habens da gelöst das sie immer wieder schön refreshed haben nacvh einer bestimmten zeit...
Du meinst per JavaScript einen ~10s Timer mitlaufen lassen. Da eigentlich das Script schon innerhalb 1s fertig sein müsste wird dann eben die Seite neu geladen?
-
Da kommt mir ne Idee:
ini_set ('default_socket_timeout', 15); // Wenn nach 15 Sekunden keine Verbindung hergestellt werden konnte, wird der Versuch abgebrochen. Standard sind 60 Sekunden. // Verbindung & Kommunikation // einen Timeout feststellen und entsprechend handeln wenn-timeout-aufgetreten { // Script erneut laden header ('Location: http://.../meinscript.php'); exit; }