Verhindert ein 504 Gateway Timeout mit riesigen PHP-Skript
Ich bin derzeit läuft ein Apache-server (2.2) auf meiner lokalen Maschine (Windows), die ich verwende, laufen einige PHP-Skripte zu kümmern, etwas mühsame Arbeit. Eines der Skripte umfasst eine Tonne verschieben, ändern der Größe, und download /Upload der Dateien auf einen anderen server. Ich würde sehr gerne das script immer laufen, so dass ich nicht haben, um baby das Skript, indem Sie Sie starten, bis wieder jedes mal, wenn es mal aus.
set_time_limit(0);
ignore_user_abort(1);
Beide sind in meinem Skript, aber nach etwa 30 Minuten zu einer Stunde Stoppt das Skript und ich bekomme den 504 Gateway Time-out-Meldung in meinem browser. Gibt es etwas, was ich vermisst in Apache oder PHP, um zu verhindern, dass der timeout? Oder sollte ich das Skript ausgeführt einen anderen Weg?
InformationsquelleAutor tsp3 | 2010-10-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Definitiv. Führen Sie Ihr Skript von der Kommandozeile aus (CLI)
InformationsquelleAutor dev-null-dweller
wenn ich es umsetzen sollten, sowas würde ich dir 2 verschiedene Skripte:
Den workflow werden sollte:
Ajax Abfrage:
gibt es einige überlegungen über die Kommunikation zwischen 2 Prozessen, je nachdem, wie viele Instanzen des Skripts B würden Sie in der Lage sein, parallel laufen
session_start(); $token = session_id();
InformationsquelleAutor Cesar
Wenn Sie ausführen müssen, um es von Ihrem browser, sollten Sie sicherstellen, dass es nicht php-execution-limit in der php.ini-Datei, sondern es gibt auch keine Grenze gesetzt in mod_php (oder was auch immer Sie verwenden) unter apache.
InformationsquelleAutor Colum
Verwendung der php -
system()
Aufruf ein shell-Skript, das startet einen Dienst - /hintergrund-task.InformationsquelleAutor rthrwht