Открыть страницу drupal через командную строку

Главные вкладки

Аватар пользователя zheka2 zheka2 22 июля 2015 в 23:04

Здравствуйте

Встала задача обновлять каталог загружая и парся другой сайт. Написал модуль, загружается и обрабатывается каталог около 10 минут, соответственно apache прибивает процесс раньше окончания.
Нашёл способ запустить через cron
export QUERY_STRING="q=grandline/parse" ; php -e -r 'parse_str($_SERVER["QUERY_STRING"], $_GET); include "index.php";'
В целом работает, хоть и ругается на "Notice: Undefined index: REMOTE_ADDR in /var/www/p321287/data/www/kaspprom.ru/includes/bootstrap.inc on line 2916"

Но осталась одна проблема, base_path система определяет как "./" . Соответственно url возвращает пути всегда относительно текущего адреса

Допускаю, что я вообще велосипед изобретаю и можно сделать проще, но не знаю как

Можно переписать парсер чтобы он перезапускался каждые N секунд восстанавливая загруженную структуру, а скрипт запускать через wget, но на это время нужно, а текущее решение на костылях но работает (убрал вызов url() )

В общем как можно решить проблему, может в параметры запуска php что-то добавить для определения глобальных переменных?

Комментарии

Аватар пользователя zheka2 zheka2 23 июля 2015 в 22:26

Я видел этот модуль, но судя по описанию "Модуль Parser предназначен для парсинга любых html страниц в сущности" он не сильно мне подходит. Каталог который я парсю по сути куча статей с описанием товаров, и по требованию заказчика он должен отображаться у него на сайте в таком же виде (вплоть до галерей), т.е. надо выдернуть из страницы статью, загрузить все используемые на ней картинки, стили и скрипты и подменить адреса их подключения.

В комментариях к модулю есть коммент от xandeadx по вопросу крона:
"я не нашёл красивой возможности запустить batch api в кроне, а писать две реализации пока нет желания"

Видимо придётся либо делать сохранения состояния при сканировании для возможности восстановления при перезапуске, либо просто забить