Jeśli strona z żądaniem wsadowym zostanie zamknięta, czy przetwarzanie wsadowe zostanie zatrzymane?
Tak, zostanie zatrzymany.
Czy uruchomi się ponownie, gdy ten sam adres URL zostanie ponownie otwarty? Moduł migracji czasami kontynuuje, ale prawdopodobnie używa kolejek?
Jak powiedział Dinesh, zależy to od implementacji.
Powinieneś uruchomić migrację za pomocą drush, ponieważ
Drush działa w wierszu poleceń i nie podlega żadnym ograniczeniom czasowym (w szczególności nie obowiązuje maksymalny czas wykonania PHP). Tak więc po uruchomieniu procesu migracji za pośrednictwem drush, po prostu uruchamia się i działa aż do zakończenia.
Podczas uruchamiania procesów przez interfejs sieciowy obowiązuje PHP max_execution_time (zwykle 30 sekund, jeśli nie mniej). Dlatego w przypadku długotrwałych procesów musimy użyć interfejsu API usługi Batch, który zarządza podziałem procesu na wiele żądań. Tak więc proces migracji rozpocznie się, będzie trwał około 25 sekund, a następnie zatrzyma się i pozwoli interfejsowi API usługi Batch wygenerować nowe żądanie strony, w którym proces migracji zostanie ponownie uruchomiony, ad infinitum.
Rozumiejąc to, dlaczego Drush jest lepszy?
Jest szybsze
Interfejs API usługi Batch wprowadza wiele narzutów - wyłączanie i ponowne wywoływanie żądań stron, proces migracji musi zostać ponownie uruchomiony przez wszystkie niezbędne konstruktory, przywrócone połączenia z bazami danych i ponownie uruchomione zapytania itp. I w przypadku częściowego importu musi wybrać tam, gdzie zostało przerwane - jeśli zaimportowanych zostało 500 pierwszych rekordów źródłowych, musi znaleźć 501. rekord. W zależności od formatu źródłowego i sposobu jego zbudowania może to być skalowane lub nie - jeśli używasz znaków wysokiej wody ze źródłem SQL, samo zapytanie może wyeliminować wcześniejsze rekordy i rozpocząć od miejsca, w którym zostało przerwane. Jeśli nie, Migrate musi przewijać dane źródłowe w poszukiwaniu pierwszego niezaimportowanego rekordu. Mając, powiedzmy, duży plik XML jako źródło,
Jest bardziej niezawodny
Uruchamianie migracji za pomocą przeglądarki dodaje pulpit i lokalne połączenie internetowe jako punkty awarii. Błąd sieciowy, gdy interfejs API usługi Batch przechodzi do żądania następnej strony, awaria przeglądarki, przypadkowe zamknięcie niewłaściwej karty lub okna może wszystko zakłócić migrację. Praca w pogotowiu zmniejsza liczbę ruchomych części - eliminujesz czynniki związane z komputerem i lokalnym połączeniem internetowym.
To jest bardziej pomocne
Jeśli coś pójdzie nie tak podczas działania w Drush, jeśli pojawią się jakieś przydatne komunikaty o błędach, zobaczysz je. Błędy przy korzystaniu z Batch API często zostają połknięte, a wszystko, co widzisz, to całkowicie bezużyteczne „Żądanie HTTP AJAX zakończyło się nieprawidłowo. Pojawiają się informacje o debugowaniu. Ścieżka: / batch? Id = 901 & op = do StatusText: ResponseText: ReadyState: 4”.
Więcej informacji na ten temat można znaleźć tutaj .
W międzyczasie, jeśli chcesz uruchomić pakiet, nawet jeśli okno przeglądarki jest zamknięte, rozważ moduł Przetwarzanie w tle . Ma podmoduł Background Batch, który załatwia sprawę .
Moduły te przejmują istniejące API Batch i uruchamiają zadania wsadowe w procesie w tle. Oznacza to, że jeśli opuścisz stronę partii, zadania będą kontynuowane, a później możesz powrócić do wskaźnika postępu.