Lange Scriptdauer
Lange Scriptdauer
Hallo,
ich habe ein Script, welches mir die Thumbnails der Bilder in meiner Datenbank neu generiert. Dieses kann, je nach Anzahl der Bilder, welche leicht in die Tausende gehen können, eine Weile dauern. In PHP ist allerdings die maximale Ausführungsdauer eines Scripts auf 30 Sekunden begrenzt und ich würde diese Einstellung gerne so lassen. Habt ihr da Ideen, wie ich das machen könnte, ohne, dass mir das Script nach 30 Sekunden abstürtzt?
Mfg.
hackmack
ich habe ein Script, welches mir die Thumbnails der Bilder in meiner Datenbank neu generiert. Dieses kann, je nach Anzahl der Bilder, welche leicht in die Tausende gehen können, eine Weile dauern. In PHP ist allerdings die maximale Ausführungsdauer eines Scripts auf 30 Sekunden begrenzt und ich würde diese Einstellung gerne so lassen. Habt ihr da Ideen, wie ich das machen könnte, ohne, dass mir das Script nach 30 Sekunden abstürtzt?
Mfg.
hackmack
They say, if you play a Microsoft CD backwards, you hear satanic messages. Thats nothing, cause if you play it forwards, it installs Windows.
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Lange Scriptdauer
Kommt drauf an, welche Möglichkeiten Du auf dem Server hast.hackmack hat geschrieben:Hallo,
ich habe ein Script, welches mir die Thumbnails der Bilder in meiner Datenbank neu generiert. Dieses kann, je nach Anzahl der Bilder, welche leicht in die Tausende gehen können, eine Weile dauern. In PHP ist allerdings die maximale Ausführungsdauer eines Scripts auf 30 Sekunden begrenzt und ich würde diese Einstellung gerne so lassen. Habt ihr da Ideen, wie ich das machen könnte, ohne, dass mir das Script nach 30 Sekunden abstürtzt?
Wenn Du das Skript außerhalb der Apache-Umgebung starten kannst, kannst Du Dir die Laufzeit ja auch selbst aussuchen.
Ansonsten kann man sich Gedanken machen, ob man den Job entsprechend serialisieren kann, dass man den Job mehrfach hintereinander aufrufen kann und so Step-By-Step die Bilder aktualisiert werden, z.B. wenn nach 10 Bildern eine Weiterleitung kommt, die den Job für die nächsten 100Bilder startet.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: Lange Scriptdauer
Versuch doch mal innerhalb deines Scripts über set_time_limit die maximale Ausführungszeit selbst festzulegen.
Siehe auch: max-execution-time
Edit: Ach, da hab ich wohl einen Teil überlesen. Ansich stellt es aber kein Problem dar, diese Grenze etwas höher zu legen - du weisst schließlich was du tust. Auch kannst du die Ausführungszeit nur für ein einzelnes Script, in dem Fall dein Thumbnail-Script, festlegen.
Siehe auch: max-execution-time
Edit: Ach, da hab ich wohl einen Teil überlesen. Ansich stellt es aber kein Problem dar, diese Grenze etwas höher zu legen - du weisst schließlich was du tust. Auch kannst du die Ausführungszeit nur für ein einzelnes Script, in dem Fall dein Thumbnail-Script, festlegen.
Re: Lange Scriptdauer
Ich habe auf dem Server Root-Rechte.Xin hat geschrieben: Kommt drauf an, welche Möglichkeiten Du auf dem Server hast.
Diese Möglichkeit habe ich auch gelesen. Da allerdings der Benutzer selbst das Script aufruft, müsste er warten, bis dass Script fertig ist, und bekommt solange nichts zu sehen, außer eine weisse Seite.bbbl hat geschrieben: Versuch doch mal innerhalb deines Scripts über set_time_limit die maximale Ausführungszeit selbst festzulegen.
Siehe auch: max-execution-time
Edit: Ach, da hab ich wohl einen Teil überlesen. Ansich stellt es aber kein Problem dar, diese Grenze etwas höher zu legen - du weisst schließlich was du tust. Auch kannst du die Ausführungszeit nur für ein einzelnes Script, in dem Fall dein Thumbnail-Script, festlegen.
Die Idee finde ich ganz gut. Werde mal schauen, was sich da mit Javascript machen lässt - damit könnte man auch eine schöne Prozentanzeige machenXin hat geschrieben: Ansonsten kann man sich Gedanken machen, ob man den Job entsprechend serialisieren kann, dass man den Job mehrfach hintereinander aufrufen kann und so Step-By-Step die Bilder aktualisiert werden, z.B. wenn nach 10 Bildern eine Weiterleitung kommt, die den Job für die nächsten 100Bilder startet.

They say, if you play a Microsoft CD backwards, you hear satanic messages. Thats nothing, cause if you play it forwards, it installs Windows.
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Lange Scriptdauer
Hmm... hier würde ich wohl eher einen Task starten und dem Benutzer per tail die Ausgabe senden.hackmack hat geschrieben:Diese Möglichkeit habe ich auch gelesen. Da allerdings der Benutzer selbst das Script aufruft, müsste er warten, bis dass Script fertig ist, und bekommt solange nichts zu sehen, außer eine weisse Seite.
Verlässt der Benutzer die Seite wird sonst ja der Job abgebrochen und das ganze klingt nicht so, als ob der Job damit erledigt ist, nur weil sich der Benutzer nicht mehr für die Ergebnisse interessiert.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: Lange Scriptdauer
@hackmack
für solche aufgaben sind Cronjobs da, mittels set_time_limit(0) setzt du die Zeit unbegrenzt
mfg
für solche aufgaben sind Cronjobs da, mittels set_time_limit(0) setzt du die Zeit unbegrenzt
mfg
Rechtschreibefehler sind gewollt und dienen der Unterhaltung
Re: Lange Scriptdauer
Nicht unbedingt. Normalerweise werden die Thumbnails für die Bilder beim Hochladen dieser generiert. Allerdings soll der Admin auch die Möglichkeit haben, falls mal etwas durcheinander gekommen ist, alles neu zu generieren. Oder meinst du, dass der Link im Adminbereich sozusagen nur den Cronjob eintragen soll, welcher dann später ausgeführt wird?Dominik hat geschrieben:@hackmack
für solche aufgaben sind Cronjobs da, mittels set_time_limit(0) setzt du die Zeit unbegrenzt
mfg
They say, if you play a Microsoft CD backwards, you hear satanic messages. Thats nothing, cause if you play it forwards, it installs Windows.
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Lange Scriptdauer
Keinen Cronjob, aber der Link sollte den Job anwerfen.hackmack hat geschrieben:Nicht unbedingt. Normalerweise werden die Thumbnails für die Bilder beim Hochladen dieser generiert. Allerdings soll der Admin auch die Möglichkeit haben, falls mal etwas durcheinander gekommen ist, alles neu zu generieren. Oder meinst du, dass der Link im Adminbereich sozusagen nur den Cronjob eintragen soll, welcher dann später ausgeführt wird?
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: Lange Scriptdauer
Nicht unbedingt. Es gibt immer noch 'flush()'. Du kannst damit zwar nicht wie mit Javascript die Ausgabe animieren, aber du kannst damit zb. zeilenweise den Output ähnlich wie in einer Konsole anzeigen lassen:hackmack hat geschrieben:Da allerdings der Benutzer selbst das Script aufruft, müsste er warten, bis dass Script fertig ist, und bekommt solange nichts zu sehen, außer eine weisse Seite.
Code: Alles auswählen
while( !finish )
{
<insert work here>
echo $status_message;
flush();
}
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)
OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at
OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at
Re: Lange Scriptdauer
Dann habe ich aber keine Möglichkeit zu kontrollieren, wie weit der Fortschritt ist, außer ich mache auch wieder was mit Javascript.Xin hat geschrieben:Keinen Cronjob, aber der Link sollte den Job anwerfen.
They say, if you play a Microsoft CD backwards, you hear satanic messages. Thats nothing, cause if you play it forwards, it installs Windows.