Wenn die Seite mit der Stapelanforderung geschlossen wird, stoppt die Stapelverarbeitung?
Ja, es wird gestoppt.
Wird es neu gestartet, wenn dieselbe URL erneut geöffnet wird? Das Migrationsmodul wird manchmal fortgesetzt, verwendet aber wahrscheinlich Warteschlangen?
Wie Dinesh sagte, hängt es von der Implementierung ab.
Sie sollten die Migration mit drush ausführen, weil
Drush wird in der Befehlszeile ausgeführt und unterliegt keinen zeitlichen Beschränkungen (insbesondere gilt nicht die max_execution_time von PHP). Wenn Sie also einen Migrationsprozess starten, der über drush ausgeführt wird, wird er einfach gestartet und läuft so lange weiter, bis er abgeschlossen ist.
Beim Ausführen von Prozessen über eine Webschnittstelle gilt die maximale Ausführungszeit von PHP (normalerweise 30 Sekunden, wenn nicht weniger). Daher müssen wir für Prozesse mit langer Laufzeit die Batch-API verwenden, die die Aufteilung eines Prozesses auf mehrere Anforderungen verwaltet. Daher wird ein Migrationsprozess gestartet, ca. 25 Sekunden lang ausgeführt und dann angehalten, und die Batch-API gibt eine neue Seitenanforderung aus, in der der Migrationsprozess unendlich oft neu gestartet wird.
Wenn man das versteht, warum ist Drush besser?
Es ist schneller
Die Batch-API verursacht viel Overhead: Das Herunterfahren und erneute Aufrufen der Seitenanforderungen, der Migrationsprozess muss alle erforderlichen Konstruktoren erneut durchlaufen, die Datenbankverbindungen müssen wiederhergestellt und Abfragen erneut ausgeführt werden usw. Für einen Teilimport muss ausgewählt werden Wo aufgehört - Wenn die ersten 500 Quelldatensätze importiert wurden, muss der 501. Datensatz gefunden werden. Abhängig von Ihrem Quellformat und seinem Aufbau kann dies skaliert werden oder nicht. Wenn Sie Hochwassermarken mit einer SQL-Quelle verwenden, kann die Abfrage selbst die früheren Datensätze entfernen und genau dort beginnen, wo Sie aufgehört haben. Ist dies nicht der Fall, muss Migrate einen Bildlauf durch die Quelldaten durchführen, um nach dem ersten nicht importierten Datensatz zu suchen. Mit zum Beispiel einer großen XML-Datei als Quelle,
Es ist zuverlässiger
Wenn Sie Migrationen über Ihren Browser ausführen, werden Ihr Desktop und Ihre lokale Internetverbindung als Fehlerquellen hinzugefügt. Ein Netzwerkfehler, wenn die Batch-API zur nächsten Seitenanforderung wechselt, ein Browserabsturz, ein versehentliches Schließen der falschen Registerkarte oder des falschen Fensters können Ihre Migration unterbrechen. Drushing reduziert die beweglichen Teile - Sie eliminieren Ihre Desktop- und lokale Internetverbindung als Faktoren.
Es ist hilfreicher
Wenn beim Ausführen von Drush etwas schief geht, werden nützliche Fehlermeldungen angezeigt. Fehler, die die Batch-API verwenden, werden häufig verschluckt und Sie sehen nur die völlig unbrauchbare Meldung "Eine AJAX-HTTP-Anforderung wurde abnormal beendet. Es folgen Debuginformationen. Pfad: / batch? Id = 901 & op = do StatusText: ResponseText: ReadyState: 4".
Weitere Informationen dazu finden Sie hier .
In der Zwischenzeit sollten Sie das Modul Hintergrundprozess in Betracht ziehen, wenn Sie den Stapel auch dann ausführen möchten, wenn das Browserfenster geschlossen ist . Es hat ein Submodul Background Batch, das den Trick macht.
Dieses Modul übernimmt die vorhandene Batch-API und führt Batch-Jobs in einem Hintergrundprozess aus. Das heißt, wenn Sie die Stapelseite verlassen, werden die Jobs fortgesetzt und Sie können später zur Fortschrittsanzeige zurückkehren.