Страница 2 из 3

Re: Экспорт фильтров для CS-Cart формирует пустой файл

Добавлено: 15 авг 2012 02:26
vkapas
e-special писал(а):в БД сайта CS-Cart выгружаются все характеристики, что есть в БД СС, поэтому такой объём,а так же выгружаются данные для фильтрации по этим характеристикам.
Включая настройку LOAD DATA INFILE для MySQL, Вы уверены что она поддерживается хостингом Вашим?
Ошибка означает, что сервер куда то ушел, и не работает больше. Это из-за объема данных.
Ограничьте экспорт, либо обратитесь к хостингу.
Извините, давно нужно было уточнить этот момент. Мы хостимся на VPS и, да, наш сервер поддерживает LOAD DATA INFILE.
e-special писал(а):

Код: Выделить всё

22. Просматривать максимальное значение скорости за последний км. пути, с указанием расстояния при каждой остановке а/м (только для 4062).
 23. Отключать индикацию максимального значения скорости за последний км. пути при каждой остановке а/м.
 24. Включать режим “Журнал скорости” для просмотра 3-х значений максимальной скорости за последний км, с указанием расстояний (только для 4062). 
Это значение из поля Описание для товара с ID 464377.
и в значениях хар-тик есть переходы на новую строку (Enter)
поэтому такой длинный файл получается с большим кол-вом строк.
Мы можем доработать программу путем автозамены перехода на новую строку на html код -
С описаниями в файле, думаю, это всё же наша вина, скорее всего где-то недосмотрели, из-за чего описания некоторых товаров просочились в экспортируемый файл.

Re: Экспорт фильтров для CS-Cart формирует пустой файл

Добавлено: 15 авг 2012 02:41
vkapas
e-special писал(а):Доработали для Вас программу. Теперь файл 7мб и 250 000 строк вместо 3,5млн
Вам нужно ожидать вскоре выйдет новая версия программы.
Большое вам спасибо за оперативность!

Вчерашнее обновление поставили и протестировали. Результаты весьма и весьма порадовали:

- из файла экспорта, действительно, исчез мусор и его размер сократился больше чем в 6 раз;
- при использовании LOAD DATA INFILE для MySQL всё проходит как и раньше, но
- без LOAD DATA INFILE файл выгружается без проблем и фильтры на сайте появляются.

Что же, это почти победа :-). Но хотелось бы добить проблему до конца.



Наш программист посмотрел код etrade_http_tunnel и у него в связи с этим возникла пара вопросов:
Возвращается или теряется ошибка при «быстрой» загрузке?

В файле etrade_http_tunnel.php (из etrade_http_tunnel) со строки 276 начинается обработка "быстрой загрузки" (строки 276-305 "быстрая загрузка", строки 306-339 "построчная" обычная загрузка).

Кульминация "быстрой" загрузки - строка 302, где выполняется импорт файла

Код: Выделить всё

mysql_query("LOAD DATA INFILE '".$csv_file_name."' INTO TABLE ".$rules_block['table_name']." (".$rules_block['fields_list'].") ") or die(SendAnswer("Error: ". mysql_error(). "\r\n SQL: ".$my_sql_query));
В этой строке, вероятно, ошибочно использована переменная $my_sql_query, т.к. в контексте указанного запроса она не содержит текст SQL запроса.
Также при "быстрой" загрузке в функции mysql_query пропущен необязательный параметр $link, который не пропущен в строке 333 при организации построчной загрузки.

Описание функционала MySql LOAD DATA - http://dev.mysql.com/doc/refman/5.6/en/load-data.html
из описаия ясно, что структура cvs файла должна быть регулярной

Re: Экспорт фильтров для CS-Cart формирует пустой файл

Добавлено: 15 авг 2012 13:43
TechAdmin
Кульминация "быстрой" загрузки - строка 302, где выполняется импорт файла
Спасибо, скорректировали данную строку.
из описаия ясно, что структура cvs файла должна быть регулярной
Для импорта данных из файла CSV используется команда вида:
LOAD DATA INFILE 'export_cc_for_CS_Cart_filters.csv' INTO TABLE etrade_cc_filters (row_type, field_value1, field_value2, field_value3, field_value4, field_value5, field_value6, field_value7, field_value8, field_value9, field_value10, field_value11, field_value12)
при выполнении которой, данные без проблем загружаются во временную таблицу etrade_cc_filters для дальнейшей обработки.

Re: Экспорт фильтров для CS-Cart формирует пустой файл

Добавлено: 17 авг 2012 14:45
vkapas
TechAdmin писал(а):
Кульминация "быстрой" загрузки - строка 302, где выполняется импорт файла
Спасибо, скорректировали данную строку.
Спасибо, после обновления etrade_http_tunnel выгрузка с LOAD DATA INFILE заработала и фильтры на сайте появились. Правда фильтры при "быстрой" выгрузке не работают, — при выборе любого фильтра или фильтров список товаров не меняется. В админке CMS фильтры при "быстрой" выгрузке не появляются.



Второй момент: после выгрузки без LOAD DATA INFILE невозможно открыть страницу фильтров в CMS. На пустой странице появляется ошибка нехватки памяти:

Код: Выделить всё

Fatal error: Allowed memory size of 50331648 bytes exhausted (tried to  allocate 52 bytes) in /var/www/pitertel/data/www/pitertel.ru/prepare.php  on line 179 
В данный момент выставлены следующие лимиты на PHP:

Код: Выделить всё

max_execution_time = 3600
max_input_time = 60
memory_limit = 512M
post_max_size = 100M
upload_max_filesize = 100M
default_socket_timeout = 60
mysql.connect_timeout = 60
На хостинге потребление памяти не превышает 1,85 Гб из 2 Гб, в том числе во время выгрузки. А вот нагрузка на CPU доходит до 100% при средней нагрузке в 10-20%.



Кроме того, мы заметили, что при любой выгрузке на сайте появляются, во-первых, не все отмеченные в программе Content Creator фильтры и, во-вторых, на фильтры на сайте выводятся в алфавитном порядке, тогда как в CC выставлен совершенно другой порядок фильтров.

Re: Экспорт фильтров для CS-Cart формирует пустой файл

Добавлено: 17 авг 2012 14:57
TechAdmin

Код: Выделить всё

Fatal error: Allowed memory size of 50331648 bytes exhausted
В данном сообщении пишется что для скриптов PHP выделено всего 50мб оперативной памяти, необходимо увеличить объём памяти в файле config.local.php.

Re: Экспорт фильтров для CS-Cart формирует пустой файл

Добавлено: 18 авг 2012 01:00
vkapas
TechAdmin писал(а):для скриптов PHP выделено всего 50мб оперативной памяти, необходимо увеличить объём памяти в файле php.ini.
Спасибо за подсказку. Проблему решили увеличением лимита на использование памяти в файле config.local.php нашей CMS

Код: Выделить всё

// Set maximum memory limit
@ini_set('memory_limit', '128M');
После этого админ-страница для работы с фильтрами заработала нормально.


Но с самими фильтрами по-прежнему проблемы есть:

- на сайт выгружаются не все фильтры. В среднем в каждой категории отсутствует 1-2 фильтра. Причём в файле экспорта они есть, а на сайте и в админке их нет. Кроме того, в некоторых категориях на сайте оказываются фильтры, которые вообще не были отмечены в Content Creator галкой в столбце «Фильтр». В общем, CMS очень произвольно воспринимает настройки фильтрации в Content Creator;
- порядок фильтров на сайте (т.е. что в списке фильтров будет первым, что вторым..) отображается по алфавиту и не соответствует порядку, указанному в Content Creator.

В связи с этим возникло два вопроса:

1. Поддерживает ли CC порядок фильтров для CMS CS-Cart 3.0.1?

2. При разборе файла экспорта (пример) мы заметили, что значения строк f и cps совпадают, так и должно быть? Например: «cps 6921 Производитель» и «f 6921 Производитель», «cps 79 Вид наушников» и «f 79 Вид наушников». Возможно, в поле cps должны были попадать какие-то другие данные, а поле переписывается неверным значением.

Re: Экспорт фильтров для CS-Cart формирует пустой файл

Добавлено: 20 авг 2012 13:56
vkapas
Не могли бы вы проверить на корректность прикреплённый выше файл и уточнить, поддерживает ли Content Creator экспорт порядка фильтров для CMS CS-Cart 3.0.1?

Re: Экспорт фильтров для CS-Cart формирует пустой файл

Добавлено: 20 авг 2012 15:30
TechAdmin
От вас необходимо получить архив БД СС без фотографий, чтобы мы могли проверить импорт данных на сайт. Так же укажите в какой категории товара и какой характеристики нет в разделе "Фильтр", чтобы ускорить проверку.

Re: Экспорт фильтров для CS-Cart формирует пустой файл

Добавлено: 20 авг 2012 18:19
vkapas
Отправил ссылку на файл и объяснение в ЛС.

Re: Экспорт фильтров для CS-Cart формирует пустой файл

Добавлено: 21 авг 2012 14:33
TechAdmin
Проблема обнаружена и исправлена. Для вас доступна новая версия программы СС.