Heim > Artikel > Backend-Entwicklung > Asynchron – PHP-Massendatenimport
Jetzt müssen Excel-Daten in eine Datentabelle importiert werden, aber die Datenmenge ist relativ groß. Es müssen höchstens Dutzende W-Daten gleichzeitig importiert werden in die Datenbank, aber über eine Schnittstelle können bis zu 1.000 Elemente gleichzeitig verarbeitet werden. Jetzt möchte ich einen aufgabenbasierten Import erstellen Importieren Sie die Aufgabe, stellen Sie alle Aufgaben in eine Warteschlange und erledigen Sie die Importaufgaben nacheinander. Es gibt welche guten Methoden und Vorschläge
Jetzt müssen Excel-Daten in eine Datentabelle importiert werden, aber die Datenmenge ist relativ groß. Es müssen höchstens Dutzende W-Daten gleichzeitig importiert werden in die Datenbank, aber über eine Schnittstelle können bis zu 1.000 Elemente gleichzeitig verarbeitet werden. Jetzt möchte ich einen aufgabenbasierten Import erstellen Importieren Sie die Aufgabe, stellen Sie alle Aufgaben in eine Warteschlange und erledigen Sie die Importaufgaben nacheinander. Es gibt welche guten Methoden und Vorschläge
Ihre Idee ist sehr gut, aber leider ist PHP für so etwas nicht geeignet. Es wird empfohlen, eine Sprache wie Java zu verwenden, um Ihre Idee umzusetzen.
PHP hat eine Aufgabe und übermittelt die Aufgabenparameter direkt an die Datenbank.
Java greift alle 100 ms im Hintergrund auf die Datenbank zu, um zu sehen, ob Aufgaben vorhanden sind, und um diese gegebenenfalls zu verarbeiten.
php ist standardmäßig auf 30 Sekunden eingestellt; Sie können ein set_time_limit(99999999) hinzufügen;
Hunderttausende Daten sollten in weniger als 1 Minute gespeichert werden
Crontab-Aufgabenliste führt asynchrone Hintergrundaufgaben aus, was für dieses Szenario sehr gut geeignet ist
MySQL-Ladedaten-Infile importiert Daten schnell in eine temporäre Tabelle
Der PHP-Daemon synchronisiert Daten stapelweise mit der Schnittstelle (oder crontab schreibt geplante Aufgaben)
PHP in SQL einfügen und MySQL-Hintergrundquelle direkt importieren
Es ist am besten, in Segmenten zu importieren, nicht alle auf einmal