+IIS Laufzeit von Scripten
romy
- php
0 Axel Richter0 Mike©0 romy
Guten Morgen,
da bin ich mal wieder und weiß leider gar nicht weiter und stehe außerdem schon auf meinem Rüssel fest.
Nun gut, ich habe einen IIS 6.0 welcher PHP als CGI ausführt, das Ganze läuft auf einem Windows 2003 Server.
Da gibt es jetzt ein kleines PHP-Script, welches in einer Datenbank nach Einträgen sucht und diese in eine CSV-Datei stopft und zusätzlich Bilder pro Eintrag sucht und diese in eine ZIP_Datei stopft. Dies braucht so seine Zeit und deswegen habe ich dem IIS gesagt: Bitte Laufzeit auf 60 Minuten stellen. (MMC->Internetinformationsdienstmanager->Websites->Eigenschaften von Websites->Verbindungstimeout)
Desweiteren steht in der PHP.ini
max_execution_time = 3600
max_input_time = 3600
memory_limit = 100M
Trotzdem kommt ein Timeout, bzw. es kommt gar nichts, aber das Script hört mitten in der While-Schleife auf (manchmal bei Eintrag 91, mal bei 95 etc) und der Browser meldet fertig.
Versuche ich etwas, was nicht möglich ist, oder sehe ich eine entscheidende Sache nicht oder stimmt mein Ansatz nicht?
Vielen Dank für Eure Hilfe
ciao
romy
Hallo,
Dies braucht so seine Zeit und deswegen habe ich dem IIS gesagt: Bitte Laufzeit auf 60 Minuten stellen. (MMC->Internetinformationsdienstmanager->Websites->Eigenschaften von Websites->Verbindungstimeout)
Hm, IIS habe ich lange nicht gebraucht. Aber früher gab es da eine extra CGI-Timeout Einstellung.
http://www.microsoft.com/technet/community/columns/insider/iisi0302.mspx#ECAA
Trotzdem kommt ein Timeout, bzw. es kommt gar nichts, aber das Script hört mitten in der While-Schleife auf (manchmal bei Eintrag 91, mal bei 95 etc) und der Browser meldet fertig.
Welcher Server-Log Eintrag? Wie beantwortet der Server die Anfrage?
502.1 wäre ein CGI-Timeout. Dann dürfte der Client aber nicht einfach fertig melden.
Versuche ich etwas, was nicht möglich ist, oder sehe ich eine entscheidende Sache nicht oder stimmt mein Ansatz nicht?
Muss der Client denn die Aktion des Scriptes abwarten? Kann das Script nicht eine Aktion im Hintergrund anstoßen?
viele Grüße
Axel
Moin romy,
Trotzdem kommt ein Timeout, bzw. es kommt gar nichts, aber das Script hört mitten in der While-Schleife auf (manchmal bei Eintrag 91, mal bei 95 etc) und der Browser meldet fertig.
zunächst bin ich auch, wie Axel, der Meinung, dass es sich um einen CGI Timeout handelt. Den kannst Du wie im Link beschrieben hoch setzen.
Desweiteren auch im Script folgendes einbauen:
set_time_limit(0);
ignore_user_abort(true);
regds
Mike©
Hi,
ich danke Euch beiden, habe leider diesen Eintrag aus dem Linknicht finden können, auch nicht in ähnlicher Form, was damit zusammenhängen mag, dass der Artikel glaube ich um IIS 5.0 ging.
die Beiden Einstellungen, die Mike sagte, waren bereits in dem Script verzeichnet.
Mittlerweise glaube ich, dass es nicht realisierbar ist, zumal ich feststellen musste, dass das Script fast 1,5 h braucht.
Ich lasse es jetzt per Cronjob auf dem Server jeden Tag ablaufen. (Wußte doch tatsächlich nicht, dass man so etwas machen kann wie "php.exe scriptname.php" auf der Console)
ich danke Euch,
ciao
romy