Имеется интернет-магазин, который парсит данные со склада.
Данные выгружаются в xml-файле размером примерно 50МБ в базу данных.
Необходимо, чтобы клиент сам мог это делать, скажем, раз в неделю нажатием кнопки!
Как реализовать сам парсинг я знаю, используя, скажем, XMLReader.
Вопрос заключается в самом инициировании парсинга - как это лучше всего реализовать?
Допустим, есть кнопка, нажали, запустился скрипт - а в этот момент что? Браузер будет ждать? - дак там лимит на 30 секунд и у каждого браузера разный.
Запустить фоново? Скажем, в скрипте будет ignore_user_abort(true) set_time_limit(0);
открыть вкладку и сразу закрыть ее, а клиенту выдать сообщение что парсинг выполнится фоново? Я пробовал так делать, были подозрения, что скрипт выполнялся фоново, но все равно, не до конца.
Пробовал даже разбивать файлы на части и после выполнения каждой части делать редирект на этот же адрес, чтобы сбросить лимит браузера на ожидание! Но мне это все кажется такими костылями дикими что просто ужас!
Как обычно реализуются такие задачи?
Если по самому простому - сделать ajax запрос на сервер. Начать парсинг, предварительно сделав пометку (например в бд), что пошла обработка. Юзеру при след. нажатии на кнопку или когда он далее будет ходить по сайту писать что парсинг работает в фоне. Не допускать повторного запуска парсинга, пока не завершен предыдущий.
Второй вариант - запустить крон, который сканирует очередь задач из бд и парсит нужные файлы. Неплохой вариант для небольших задач.
Третий (на мой взгляд наиболее нормальный вариант). Запустить vps, установить сервер очередей (например Gearman). Запустить фоновый процесс (скрипт с бесконечным циклом) парсинга файлов из очереди. При нажатии юзером на кнопку, положить в очередь задач необходимые данные для парсинга (путь к файлу и т.д.). Фоновый скрипт будет доставать следующую задачу из очереди и парсить нужный файл.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Ребята, кто-нибудь сталкивался с LIKE запросами в библиотеке aura/sqlquery? https://packagistorg/packages/aura/sqlquery
Вообщем народ у меня такая проблема с хлебными крошками на данный момент в товаре хлебные крошки, выглядят примерно так: