SOS! Туннель зависает

Помощь пользователям в работе с программой E-Trade PriceList Importer
Miloslavskij
Сообщения: 43
Зарегистрирован: 04 июл 2013 12:22

27 апр 2014 16:02

Спасибо за ответ, но
а) всё поля при экспорте требуют обновления, отключать не можем...
б) касательно хостинга - речь ведь идет о Денвере, то есть экспорт на локальную машину, PLI стоит на этой же машине... характеристики машины выше

+
дополнительный вопрос по галочке UTF-8 в настройках экспорта HTTP Tunnel, стоит ли ставить?
Повлияет ли на скорость выгрузки?
Аватара пользователя
support
Сообщения: 10553
Зарегистрирован: 09 ноя 2008 21:37

28 апр 2014 09:33

На скорость выгрузки не повлияет. Это кодировка. О ней можно почитать в сети интернет.
Есть ли ошибки при экспорте?
C уважением, поддержка ElbuzGroup.
Документация E-Trade Jumper
Miloslavskij
Сообщения: 43
Зарегистрирован: 04 июл 2013 12:22

28 апр 2014 11:32

Нет, ошибок не овзникает, проблема лишь в том, что долго экспортирует....
Поробовал последовать рекоменадациям:
tkachenkoser писал(а):поотключайте загрузку /обновление полей, которые не используете, и не надо обновлять каждый день
Выгрузка зависит больше от хостинга, чем от вашей конфигурации.


оставили лишь галочки в столбце "Обновление":
- категории - порядок сортировки
- товары - количество товара
- товары - цена
столбец "Вставка" полностью опустошили...

+
пару SQL запросов след. содержания:
после обновления
UPDATE product_discount, etrade_products SET product_discount.price = SUBSTRING_INDEX( SUBSTRING_INDEX(etrade_products.addon_prices_list, ';', -2 ) , ';', -1) WHERE product_discount.product_id=etrade_products.tov_id;;;

INSERT INTO product_discount (product_discount_id, product_id, customer_group_id, quantity, priority, price, date_start, date_end) SELECT tov_id, tov_id, '3' as customer_group_id, '1' as quantity, '1' as priority, SUBSTRING_INDEX( SUBSTRING_INDEX(etrade_products.addon_prices_list, ';', -2 ) , ';', -1), now() as date_start, '2015-02-28' as date_end FROM etrade_products WHERE tov_id NOT IN (SELECT product_id FROM product_discount GROUP BY product_id);;;

UPDATE product, etrade_products SET stock_status_id=(SELECT stock_status_id FROM stock_status WHERE name='Ïðåäçàêàç (Ñðîê: 7-13 äíåé)') WHERE etrade_products.tov_id=product.product_id AND etrade_products.supply_id=10;;;
UPDATE product, etrade_products SET stock_status_id=(SELECT stock_status_id FROM stock_status WHERE name='Ïðåäçàêàç (Ñðîê: 7-13 äíåé)') WHERE etrade_products.tov_id=product.product_id AND etrade_products.supply_id=12;;;
UPDATE product, etrade_products SET stock_status_id=(SELECT stock_status_id FROM stock_status WHERE name='Ïðåäçàêàç (Ñðîê: 7-13 äíåé)') WHERE etrade_products.tov_id=product.product_id AND etrade_products.supply_id=14;;;
UPDATE product, etrade_products SET stock_status_id=(SELECT stock_status_id FROM stock_status WHERE name='Ïðåäçàêàç (Ñðîê: 7-13 äíåé)') WHERE etrade_products.tov_id=product.product_id AND etrade_products.supply_id=16;;;
UPDATE product, etrade_products SET stock_status_id=(SELECT stock_status_id FROM stock_status WHERE name='Ïðåäçàêàç (Ñðîê: 7-13 äíåé)') WHERE etrade_products.tov_id=product.product_id AND etrade_products.supply_id=28;;;
UPDATE product_to_category, etrade_products SET main_category=0;;;
UPDATE product_to_category, etrade_products SET main_category=1 WHERE etrade_products.tov_id=product_to_category.product_id AND etrade_products.tov_cat_id=product_to_category.category_id;;;

до обновления
UPDATE product, etrade_products SET tov_quantity=0 WHERE etrade_products.tov_id=product.product_id AND etrade_products.supply_id=10;;;
UPDATE product, etrade_products SET tov_quantity=0 WHERE etrade_products.tov_id=product.product_id AND etrade_products.supply_id=12;;;
UPDATE product, etrade_products SET tov_quantity=0 WHERE etrade_products.tov_id=product.product_id AND etrade_products.supply_id=14;;;
UPDATE product, etrade_products SET tov_quantity=0 WHERE etrade_products.tov_id=product.product_id AND etrade_products.supply_id=16;;;
UPDATE product, etrade_products SET tov_quantity=0 WHERE etrade_products.tov_id=product.product_id AND etrade_products.supply_id=28;;;

Результат: время экспорта осталось без изменений... чуть больше 20 минут

p/s - речь о локальном размещении сайта на денвере, денвер и PLI на одной машине,
кофиг вот:
Miloslavskij писал(а):Прошу рекомендаций по повышению скорости экспорта через туннель... мы экспортируем на денвере, экспорт занимает около 20 минут, товаров от 15 до 20 тысяч, конфиг машины след.:
Проц - core i5 3570K (не разгоняли),
озу - 8 гб,
жесткий - sata3 WD5003AZEX,
мать - GIGABYTE GA-Z77MX-D3H
win 2008r2
CMS - Ocstore 1.5.5.1

Хотелось бы уменьшить время экспорта до 5-7 минут хотя бы, соответсвенно вопрос - Что, где "подкрутить"?


вопрос остался соответсвенно открыт...
Денис
Сообщения: 182
Зарегистрирован: 19 авг 2012 12:40

28 апр 2014 11:38

Miloslavskij, а в настройках MySQL на самом денвере ковырялись или все по умолчанию стоит?
Miloslavskij
Сообщения: 43
Зарегистрирован: 04 июл 2013 12:22

13 май 2014 12:58

Добрый день. Вот и случилось. Сегодня столкнулся, лицом к лицу, с ошибкой автора темы, хотя до этого только "симптоматика" была схожей.
До сегоднешнего дня мной выгружались лишь товары со статусом наличия и со статусом предзаказ - товары со статусом "нет в наличии" не выгружались, и были отключены.
Решили сделать некоторую ревизию за весь период, и обновить seo, наименования, артикулы, цены и придать статус "вкл" всем товарам, что отсутствуют, так как вычитал, что - по хорошему, лучше чтоб отсутсвующие товары все равно были активны, и могли просматриваться покупателями для большей индексации, но не суть...
Таких товаров оказалось больше, чем тех, что были в наличии. В наличии обычно не больше 19т. Сегодня в выгрузку с отсутствующими в наличии товарами выпало 40,5т.
И вот тут, после, уже привычных, получаса ожидания выгрузки на сайт, выдало ошибку.

Подумал, что в настройках что-то нето... так как статус наличия товара формируется на основании того, у какого поставщика он есть/нет и с помощью SQL запросов, решил, что убрать SQL запросы и убрать галочку с "Выгружать данные только выбранных контрагентов" может стать моим "спасательным кругом"... запустил снова экспорт... и снова полчаса ожидания... и снова ошибка.

Хм... вбиваю в форму "Время ожидания операции истелко"- Ответ неумолим: "Подходящих сообщений не найдено, поскольку слово истелко нигде не встречается". Почти случайно наткнулся эту тему.

Начал действовать согласно рекомендациям:
e-special писал(а):Скорость интернета не влияет на ошибку. Влияют настройки хостинга на котором находится сайт. Обрететесь в к хостингу для увлечения времени, которое выделяется для выполнения скрипта.
Так же можете выслать нам БД для проверки.


Забыл напомнить, что ВСЁ ПРОИСХОДИТ НА DENWER (http://www.denwer.ru/), что дает определенную волю в экспериментах.
Открываю HTACESS:
php_value upload_max_filesize 999M
php_value post_max_size 999M
php_value max_execution_time 300000
php_value max_input_time 200000

Окрываю php.ini:
magic_quotes_gpc = Off;
register_globals = Off;
default_charset = UTF-8;
memory_limit = 2000M;
max_execution_time = 300000;
upload_max_filesize = 999M;
safe_mode = Off;
mysql.connect_timeout = 200000;
session.use_cookies = On;
session.use_trans_sid = Off;
session.gc_maxlifetime = 12000000;
allow_url_fopen = on;

Окрываю admin/php.ini:
magic_quotes_gpc = Off;
register_globals = Off;
default_charset = UTF-8;
memory_limit = 2000M;
max_execution_time = 300000;
upload_max_filesize = 999M;
safe_mode = Off;
mysql.connect_timeout = 200000;
session.use_cookies = On;
session.use_trans_sid = Off;
session.gc_maxlifetime = 12000000;
allow_url_fopen = on;

Открываю HTACESS файл в папке HTTP tunnel, там:
<IfModule mod_php.c>
php_value max_input_time 600000
php_value post_max_size 999M
php_value memory_limit 2000M
php_value max_execution_time 300000
php_value upload_max_filesize 999M
</IfModule>

На всякий случай, снова, конфиг железа:
Miloslavskij писал(а):Прошу рекомендаций по повышению скорости экспорта через туннель... мы экспортируем на денвере, экспорт занимает около 20 минут, товаров от 15 до 20 тысяч, конфиг машины след.:
Проц - core i5 3570K (не разгоняли),
озу - 8 гб,
жесткий - sata3 WD5003AZEX,
мать - GIGABYTE GA-Z77MX-D3H
win 2008r2
CMS - Ocstore 1.5.5.1

Хотелось бы уменьшить время экспорта до 5-7 минут хотя бы, соответсвенно вопрос - Что, где "подкрутить"?


Проверил экспорт только товаров со статусом наличия "Есть" и "Подзаказ" -в экспорт "падает" 17,5т. товаров и ВСЁ РАБОТАЕТ!, долго правда ппц просто, но всё-таки...
Прошу помощи - как решить проблему с ошибкой?

Заодно и Денису ответил:
Денис писал(а):Miloslavskij, а в настройках MySQL на самом денвере ковырялись или все по умолчанию стоит?

выше описаны все мои ковырялки в денвере, больше вроде ничего не делал...

Также, предлагаю всё-таки вынести на голосование реализацию идеи работать напрямую с MySQL по 3306 порт:
http://elbuz.reformal.ru/proj/elbuz?ia=649322
TechAdmin писал(а):
This script allows you to manage database server even if the corresponding port is blocked or remote access to database server is not allowed.

На данный момент в ПЛИ и СС нет возможности работать напрямую с MySQL по 3306 порту, это планировалось сделать, но скорость обновления сайта через "туннель" достаточно велика, поэтому такая потребность отпала, более того, подавляющее большинство хостингов (90%) запрещает использование прямого доступа к БД сайта, поэтому данная возможность будет мало востребована и смысла её использования нет, потому как использование "туннеля" по скорости достаточно приемлема для обновления сайта, поэтому не планируется доработка ПЛИ и СС для работы напрямую с MySQL по 3306 порту. На видео был показан процесс обновления сайта на базе WebAsyst ShopScript, показана выгрузка каталога товаров с количеством ~30000, весь процесс занял ~3минуты, из них непосредственно на работу с сервером БД MySQL было затрачено ~1:30мин, остальное время это выгрузка категорий и товаров из ПЛИ во временный файл для обновления сайта. Всего полторы минуты на обновление БД сайта...

"Данный сайт использует стандартный виртуальный хостинг со всеми вытекающими. Мы пошли со своей стороны на некоторые уступки и выделили больше ресурсов. Выгрузка проходит без ошибок, но очень долго, все равно. Мы смотрели ваше видео с выгрузкой базы за 3 минуты. Все очень здорово, только Вы не учли один момент: Вы используете монопольный доступ к базе, у нас, Слава Богу, десятки сайтов, и тысячи запросов на этот же сервер ежесекундно, более того пока обновляется БД данного сайта, Вы же прекрасно понимаете, что его никто не выключает для доступа с наружи. И он вынужден обрабатывать запросы на чтение тех таблиц которые обновляются в процессе выгрузки.

Это ответ вам tkachenkoser, почему так всё долго происходит, у вас обычный "виртуальный хостинг со всеми вытекающими"... Нет смысла выделять вам больше ресурсов, если на одном хостинг сервере, кроме вашего сайта есть еще "десятки сайтов, и тысячи запросов на этот же сервер ежесекундно".


так как найти всё-таки эти самые 10% хостеров с портом 3306 в теории реально, а вот найти хостера, который будет давать такое хостинг/железо, меньше чем 3т.р. в месяц очень маловероятно :
tkachenkoser писал(а):Перешел на выделенный сервер. Взял Xeon 4 ядерный, 3 гб оперативы. Скорость сайта не особо изменилась, а вот выгрузка теперь около минуты. Сначала даже не верил, думал ошибка. Было час, стало в 60 раз меньше.
Работает как предыдущая, так и последняя версия туннеля. Как обычно техподдержка сработала на отлично!
Аватара пользователя
TechAdmin
Администратор
Сообщения: 4286
Зарегистрирован: 27 авг 2008 14:30

13 май 2014 13:41

Проверил экспорт только товаров со статусом наличия "Есть" и "Подзаказ" -в экспорт "падает" 17,5т. товаров и ВСЁ РАБОТАЕТ!, долго правда ппц просто, но всё-таки... Прошу помощи - как решить проблему с ошибкой?

Вышлите архив вашей базы, проверим у себя на "денвере" скорость выгрузки.
Также, предлагаю всё-таки вынести на голосование реализацию идеи работать напрямую с MySQL по 3306 порт:

В этом нет острой необходимости, всё должно работать быстро, вот тут есть информация о том, что есть проблемы с настройками "сервера" и они сильно влияют на скорость обновления
С уважением, поддержка ElbuzGroup.
Аватара пользователя
TechAdmin
Администратор
Сообщения: 4286
Зарегистрирован: 27 авг 2008 14:30

14 май 2014 09:59

На присланной вами базе данных ПЛИ, в которой находится 43343 товара, обновление сайта OpenCart занимает 1мин. 57сек.
pli_export_to_opencart.png
pli_export_to_opencart.png (49.23 КБ) 5613 просмотров

Вам стоит разобраться с вашими SQL запросами, которые сильно тормозят обновление сайта, например запрос

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

UPDATE product_to_category, etrade_products SET main_category=0;;;

заменить на

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

UPDATE product_to_category SET main_category=0;;;
С уважением, поддержка ElbuzGroup.
Miloslavskij
Сообщения: 43
Зарегистрирован: 04 июл 2013 12:22

18 май 2014 15:34

Спасибо, помогло.
Ответить

Вернуться в «Техническая поддержка программы E-Trade PriceList Importer»