Server bricht Sciptlaufzeit ab
Hallo Leute,
ich habe ein kleines Problem mit der Verarbeitung großer Datenmengen auf unserem gemanagten Webserver. Ich habe eine riesen Datandatei eines Versenders bekommen, diese ist mal eben gute 400MB groß. Sie ist auf den Server geladen und muss nun ausgelesen, interpretiert, verarbeitet und in die SQL Datenbank geschrieben werden. Das Problem ist, das der Server offensichtlich nicht genug Zeit aufwendet um dies zu tun und bricht irgendwann ab und gibt dem Browser die Fehlermeldung 500 zurück. Die Verabreitung in die diversen Datenbanktabellen läuft bis dahin einwandfrei, aber es sind halt einige Millionen Einträge (zusammengerechnet). Ich weiß, jetzt kommt sofort wieder die Anmerkung die "max_execution_time" des Servers zu prüfen. Naja, habe ich gemacht, unser Hetzner Sever hat da gar keinen Wert vorgegeben, Laufzeit also offen, nix 10, 30, 60 Sekunden, damit wäre ich ja gerade mal zu 10% fertig. Nein, nein, der Server läuft immer so gute 7:30 Minuten, in der Zeit kann ich auch sehen wie die SQL Datenbank sich reichlich füllt, aber ungefähr nach dieser Zeit ist Schluß. Diese Einstellung gibt die Variable max_execution_time gar nicht vor, der Abbruch muss also von woanders her erfolgen. Wo gibt es bei einem Webserver noch Abbruchvariablen, wie kann ich ihm sagen arbeite bis du fertig bist und wenn du ne Stunde brauchst? Oder ist das ein lokales Problem des Browsers, bricht der irgendwann ab und sendet dem Server verdeckt ein Signal "komm lass sein, bringt nix" oder so? Wo finde ich nun den Schuldigen für den Abbruch? Wäre schön wenn mir da jemand helfen könnte, Danke im Voraus. Gruß Doc |
AW: Server bricht Sciptlaufzeit ab
Zitat:
Zitat:
Davon abgesehen: das, was Du vorhast, macht man besser in der CLI. |
AW: Server bricht Sciptlaufzeit ab
Hi,
Zitat:
1. wie pguser sagt per CLI und z.B. Load Data (cron) 2. Batch mit Load Data (cron) MfG CKaos |
AW: Server bricht Sciptlaufzeit ab
Hallo,
vielen Dank für die Antworten, dachte schon da traut sich keiner ran, aber eure Ideen waren sehr gut. Habe meine Routinen jetzt mal per FastCGI als Cronjob direkt vom Server ausgeführt und was soll ich sagen: funzt. ;) Kann mir denn jemand erklären was da anders ist? Also zum einen hat er problemlos alles durchgearbeitet UND er war bereits nach knapp 5 Minuten fertig! Wie gesagt, die gleiche PHP Routine von einem Browser aus am Server angestoßen arbeitet gute 7:30 Minuten und ist dann gerade zur Hälfte fertig, der cron wesentlich schneller mit allem. Hält der Server mit dem jeweiligen Clientbrowser irgendeine Kommunikation offen von der der User nur nichts mitbekommt oder was klaut da die Zeit? Also das wäre jetzt nur Antwort+, ich danke für die jetzigen, denn die brachten jedenfalls das gewünschte Ergebnis. :-D Gruß Doc |
AW: Server bricht Sciptlaufzeit ab
Zitat:
|
AW: Server bricht Sciptlaufzeit ab
Zitat:
Sehr vereinfacht stelle man sich das so vor: Die Daten werden nun direkt verarbeitet und nicht mehr ausgelesen, vom Webserver in den Parser geschickt, dort ausgewertet, an die Server-Module weiter geleitet, wieder interpretiert und dann endlich verarbeitet. Der Webserver ist ausserdem so konfiguriert, dass er nur eine limitierte Anzahl an Instanzen zulässt. Und ein wesentlicher Vorteil: Die CLI/CGI hat eine eigene php.ini, in der man Umgebungsvariablen nabhängig von denen des Webservers einstellen kann. |
Alle Zeitangaben in WEZ +2. Es ist jetzt 16:36:24 Uhr. |
Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.