Если страница с пакетным запросом закрыта, останавливается ли пакетная обработка?
Да, это будет остановлено.
Будет ли он перезапущен, когда тот же URL открывается снова? Модуль переноса иногда продолжается, но, вероятно, он использует очереди?
Как сказал Динеш, все зависит от реализации.
Вы должны запустить миграцию, используя drush, потому что
Drush запускается из командной строки и не подчиняется никаким временным ограничениям (в частности, PHP max_execution_time не применяется). Итак, когда вы запускаете процесс миграции, запущенный с помощью drush, он просто запускается и продолжает работать, пока не будет завершен.
При запуске процессов через веб-интерфейс применяется PHP max_execution_time (обычно 30 секунд, если не меньше). Таким образом, для длительных процессов нам нужно использовать Batch API, который управляет разбиением процесса по нескольким запросам. Итак, процесс миграции запустится, запустится примерно на 25 секунд, затем остановится и позволит пакетному API выдать новый запрос страницы, в котором процесс миграции будет перезапущен до бесконечности.
Итак, понимая это, почему Drush лучше?
Это быстрее
Пакетный API вводит много накладных расходов - закрытие и повторный вызов запросов страниц, процесс миграции должен снова пройти через все необходимые конструкторы, восстановить соединения с базой данных, выполнить запросы повторно и т. Д. И для частичного импорта необходимо выбрать там, где он остановился - если первые 500 исходных записей были импортированы, необходимо найти 501-ю запись. В зависимости от исходного формата и того, как он создан, это может изменяться или не масштабироваться - если вы используете верхние метки с источником SQL, сам запрос может удалить более ранние записи и начать с того места, где вы остановились. Если нет, то Migrate необходимо прокрутить исходные данные в поисках первой не импортированной записи. С, скажем, большой XML-файл в качестве источника,
Это надежнее
Запуск миграций через ваш браузер добавляет ваш рабочий стол и локальное подключение к Интернету в качестве точек сбоя. Сетевой сбой при переходе Batch API на следующий запрос страницы, сбой браузера, случайное закрытие неправильной вкладки или окна могут прервать вашу миграцию. Работа в режиме drush уменьшает количество движущихся частей - вы исключаете свой рабочий стол и локальное подключение к Интернету как факторы.
Это более полезно
Если что-то пойдет не так при работе в Drush, если появятся какие-либо полезные сообщения об ошибках, вы их увидите. Сбои с использованием Batch API часто поглощаются, и все, что вы видите, это абсолютно бесполезный «HTTP-запрос AJAX ненормально завершен. Информация об отладке следующая. Путь: / batch? Id = 901 & op = do StatusText: ResponseText: ReadyState: 4".
Вы можете найти больше информации об этом здесь .
В то же время, если вы хотите запустить пакет, даже если окно браузера закрыто, рассмотрите модуль фонового процесса . У него есть подмодуль Background Batch, который делает свое дело.
Этот модуль берет на себя существующий пакетный API и запускает пакетные задания в фоновом режиме. Это означает, что если вы покинете страницу пакета, задания продолжатся, и вы сможете вернуться к индикатору прогресса позже.