Ich bin der einzige Administrator der Datenbank. Ich möchte ein einmaliges Skript ausführen, das ungefähr 3800 gescannte Bilder benötigt (es wird bis zu 10.000.000 wachsen) und ein paar Miniaturen für jedes Bild erstellen, indem ich die exec() -Funktion von PHP benutze, um das externe Programm imagemagick zu erstellen Vorschaubilder.Maximale Ausführungszeit Fehler in PHP-Skript, ist dies eine gute Lösung, um es zu umgehen?
Ich habe das Skript erstellt, startete es und alles funktioniert perfekt! Alles geschieht auf meinem lokalen Entwicklungsserver. Das Skript benötigt ungefähr 11 Minuten, um Tausende von Miniaturansichten zu erstellen. Es ist eine einmalige Operation, die alle zwei Jahre durchgeführt wird, daher sind die Konsequenzen minimal.
So weit so gut. Hier ist, wenn ich Probleme habe.
Alles, was ich auf meinem lokalen Entwicklungsserver getan habe, habe ich auf dem Live-Server zu Testzwecken gemacht. Ich habe ein gemeinsames Host-Konto mit Hostgator. Das Ausführen meines 11 Minuten langen Skripts auf einem freigegebenen Host gibt mir den Fehler 'Maximale Ausführungszeit von 30 Sekunden überschritten ...'. Ich habe meine Nachforschungen angestellt und viele der in diesem Beitrag gefundenen Lösungen ausprobiert (Increase max execution time for php), um festzustellen, dass ich nichts tun kann, um die maximale Ausführungszeit eines Skripts auf einem gemeinsam genutzten Host zu ändern.
Ich stecke fest. Also, meine Frage ist, was ist die offensichtliche Lösung hier.
Ich habe überlegt, das Skript für jeweils 200 Bilder zu starten, die Seite automatisch zu aktualisieren und das Skript für die nächsten 200 Bilder erneut auszuführen usw., bis keine Bilder mehr vorhanden sind. Auf diese Weise bin ich sicher, dass die maximale Ausführungszeit von 30 Sekunden auf meinem freigegebenen Host eingehalten wird. Es sieht wie eine Lösung direkt von der Spitze meines Kopfes aus, aber ich bin nicht sicher, ob das ein NEIN ist, wenn ich in größere Probleme, zu viele Negative laufen werde.
Ist das das Offensichtliche Lösung? Hat jemand das gleiche Problem? Was hast du vorgeschlagen?
Dank
Warum müssen Sie alle zwei Jahre Miniaturansichten erstellen? Sollte das einmalige Erstellen des Originalbildes nicht ausreichen, um auch das Thumbnail zu erstellen und es für immer zu belassen (bis es veraltet ist)? –
Haben Sie überprüft, ob im CLI-Modus keine Ausführungszeit läuft? Normalerweise gibt es für CLI-Skripte "0" (kein Limit) für die max_execution_time - http://php.net/manual/en/info.configuration.php # ini.max-execution-time – codedge
viele gemeinsame Hosts stoppen ein lang laufendes Skript, egal was Sie tun - also überprüfen Sie zuerst –