Добрый день, всем.
Есть такая задача. Магазин. Товары выгружаются из 1С.
Характеристики для них парсяться с другого сайта.
Есть скрипт парсера, который я запускаю через cron. Скрипт валиться, выдавая DB query error. Поставил выводить подробнее.
Выводит "MySQL server has gone away" - и ошибка эта происходит при запросах SELECT в файле iblockelement.php .
Сам скрипт банальный. Берем получаем товары getlist, в цикле загружаем характеристики удаленно и далее идет обоновление товара. Там характеристики в куче мест лежат. Обработка идет последовательно - парсю html код, находя нужные данные, а далее идет обновление товара - картинка обновляется через вызов CiBlockElement::Upd ate , еще 2 свойства обновляются через Se tPropertyValues - указываю id товара, инфоблока и код свойства, сами значениея строки - множественные свойства - поэтому массив передаю строк.
Ну и цикл так работает.
Валиться эта ошибка. При чем в локалке, еще на одном хосте тестировал - проблем не было.
А на этом хостинге проблема возникет (хостинг из разряда рекомендованых под битрикс).
Сначала вообще ошибка была seg fail - там был Zend. Сейчас после отключения зенда для интерпретатора этого валиться база вот так. Хостер говорит что видимо запрос очен огромный шлется в мускул или результат выборки огромный оттуда приходит.
Эксперементировал - устанавливая константы wait_timeout ,а также константу постоянного соединения включал/отключал.
кстати если запускать скрипты через другой интерпретатор - который веб-сервером используется (fastcgi который) - так вот там вроде не возникало косяков.. но там отключен curl к сожалению.
у кого-нибудь есть идет или по опыту быть может?
Доабвка.
Хостер утверждает что виддимо запрос какой-то большой вешает. Хотя ничего такого нет.
Попробую переписать в 2 скрипта - один будет запускать второй передавая ему параметром шаг. И буду парсить по 2 товара в одном потоке так сказать.
Есть такая задача. Магазин. Товары выгружаются из 1С.
Характеристики для них парсяться с другого сайта.
Есть скрипт парсера, который я запускаю через cron. Скрипт валиться, выдавая DB query error. Поставил выводить подробнее.
Выводит "MySQL server has gone away" - и ошибка эта происходит при запросах SELECT в файле iblockelement.php .
Сам скрипт банальный. Берем получаем товары getlist, в цикле загружаем характеристики удаленно и далее идет обоновление товара. Там характеристики в куче мест лежат. Обработка идет последовательно - парсю html код, находя нужные данные, а далее идет обновление товара - картинка обновляется через вызов CiBlockElement::Upd ate , еще 2 свойства обновляются через Se tPropertyValues - указываю id товара, инфоблока и код свойства, сами значениея строки - множественные свойства - поэтому массив передаю строк.
Ну и цикл так работает.
Валиться эта ошибка. При чем в локалке, еще на одном хосте тестировал - проблем не было.
А на этом хостинге проблема возникет (хостинг из разряда рекомендованых под битрикс).
Сначала вообще ошибка была seg fail - там был Zend. Сейчас после отключения зенда для интерпретатора этого валиться база вот так. Хостер говорит что видимо запрос очен огромный шлется в мускул или результат выборки огромный оттуда приходит.
Эксперементировал - устанавливая константы wait_timeout ,а также константу постоянного соединения включал/отключал.
кстати если запускать скрипты через другой интерпретатор - который веб-сервером используется (fastcgi который) - так вот там вроде не возникало косяков.. но там отключен curl к сожалению.
у кого-нибудь есть идет или по опыту быть может?
Доабвка.
Хостер утверждает что виддимо запрос какой-то большой вешает. Хотя ничего такого нет.
Попробую переписать в 2 скрипта - один будет запускать второй передавая ему параметром шаг. И буду парсить по 2 товара в одном потоке так сказать.