Hallo Zusammen
Ich stehe momentan gerade etwas auf dem Schlauch. o.O
Ich muss für einen Kunden eine Import Funktion implementieren, mit welcher er ca. 3 Mio. Codes importieren kann.
Da diese Menge die ExecutionTime wie auch das Memorylimit überschreitet, muss ich einen anderen Weg gehen. Hat mir wer eine Idee, wie ich dies lösen könnte..? Allenfalls über einen Scheduler_Task? Es muss jedoch für den Kunden möglichst einfach bedienbar sein. Das heisst, wenn möglich nur das Upload Formular für die Datei mit den Codes.
Danke für interessante Antworten.
Grüsse websage
Ist halt die Frage, was mit den Codes passieren soll oder für was die Codes Verwendung finden.
Lass ihn doch eine Excel-Liste erstellen (das bekommt eigentlich jeder hin)
als CSV abspeichern (sollte auch noch machbar sein)
und Schreib ihm eine Importfunktion, in der er die Datei auswählen kann und dann das Script den Import übernimmt.
Und wenn das wirklich soviel Codes sind, dann musst du in deinem Script halt aufpassen, dass die ExecutionTime usw. nicht überschritten werden.
So ganz spontan mal als Idee.
Danke für deine schnelle Antwort. 🙂
Der Kunde lädt eine Text-Datei hoch. Pro Zeile 1 Code. Mit jedem Code muss ein Datensatz in der DB-Tabelle erstellt werden.
Das Problem ist, dass ich nicht einfach die ganze Datei durchrattern kann und alle Codes in die DB speichern kann. Eben wegen der execution_time. Die kann ich ja bei so vielen Codes kaum genug hoch einstellen.
Er bricht bei 30s execution_time bereits bei ca. 2000 Codes ab.
Gibt es eine Möglichkeit den Import im Hintergrund laufen zu lassen? So ähnlich wie ein Scheduler Task?
Grüsse
Mach doch ein PHP-Skript welches du auf der Konsole per Cron-Job ausführst. Wenn mich nicht alles täuscht, schlägt da die execution_time nicht zu. Wenn doch, schreibe dein Skript so, dass nur X Zeilen in einem Zyklus abgearbeitet werden und den Cron lässt du dann eben jede Minute starten.
Ich schließe mich Norman2k an, solange auf der Console eine php-cli binary benutzt wird gibt es kein execution time limit und auch kein memory limit.
Ansonsten eben scheibchenweise importieren.
Ich denke ich werde das mit einem Scheduler Task lösen und anschliessend einen Cronjob laufen lassen. Ist warscheinlich am vernünftigsten.
Weiss allenfalls gerade jemand, ob in einem Task gewisse Informationen, wie zum Beispiel der letzte importierte Code oder die Zeile abgespeichert werden können?