You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Недавно тут задавали вопрос про белый экран и в общем-то напрашивается простое решение - сегментировать YML файл на части подобно тому как это делается для сайтмапов.
Причем тоже самое нам говорит документация самого Яндекса:
разделите большие прайс-листы (более 500 000 предложений) на несколько, предложения, которые часто меняются, соберите в одном файле: сервис быстрее загружает небольшие прайс-листы и может обрабатывать их параллельно.
Хотя речь конечно может идти и не про 500 тысяч, а даже про пару-тройку десятков тысяч товаров, чтобы гарантировать обработку запроса со стороны вашего сервера.
Коррекции затрагивают только контроллер yandex_money.php и больше никаких правок не делает (можно оформить и в виде ocmod):
При таких изменениях адрес к YML будет выглядеть так: https://tratata.ta/index.php?route=extension/payment/yandex_money/market&per_page=1000&page=24
В ином случае нужны слишком большие таймауты для NGINX и PHP, чтобы дождаться генерации единого YML-файла.
P.S. Нагрузку на сервер может вызывать не только перебор товаров, но и к примеру выполнение операции $offer->addPicture($this->model_tool_image->resize($product['image'], 600, 600)); в случае, если у вас очищен кэш изображений (бонусом resize часто не только делает саму обрезку, но и генерирует дополнительное изображение в каком-нибудь WebP, чтобы обрадовать Google использованием современных форматов изображений).
P.P.S. На скорость выборки (в особенности товаров со всеми атрибутами, опциями и изображениями) может влиять отсутствие дополнительных индексов в БД. Но это уже не относится напрямую к этому модулю.
The text was updated successfully, but these errors were encountered:
Благодарю за подробное описание, рассмотрим Ваше предложение!
@ostulov, здравствуйте! Если Вы рассматриваете предложения по доработкам, то есть еще пара моментов:
В админке для Маркета сделать настройку размеров изображений. У Яндекса, судя по документации, есть ограничения - не менее 300 пикселей (по любой из сторон) и не более 3500 пикселей (по большей из сторон). Сейчас в Вашем модуле жестко зашиты размеры 600x600 (рекомендуемые Яндексом) и это не очень удобно в том случае, если используемый шаблон устанавливает другие размеры (например, 800x800, 1200x1200 и т.п.). Соответственно получается, что лишние изображения и отъедают время на генерацию, и занимают лишнее место на диске, при этом никакого смысла в них нет.
Сделать для Маркета использование кэша опциональным с управлением через ту же админку. Тут проблема только для тех, у кого идет постоянная синхронизация складских остатков. Соответственно приходится либо после каждой синхронизации чистить кэш, либо просто глушить его использование в модуле. Если генерация YML по ссылке оптимизирована и укладывается в требуемые 150 секунд, то пусть сервер и генерирует его постоянно при каждом запросе робота.
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Всем привет!
Недавно тут задавали вопрос про белый экран и в общем-то напрашивается простое решение - сегментировать YML файл на части подобно тому как это делается для сайтмапов.
Причем тоже самое нам говорит документация самого Яндекса:
Хотя речь конечно может идти и не про 500 тысяч, а даже про пару-тройку десятков тысяч товаров, чтобы гарантировать обработку запроса со стороны вашего сервера.
Коррекции затрагивают только контроллер yandex_money.php и больше никаких правок не делает (можно оформить и в виде ocmod):
При таких изменениях адрес к YML будет выглядеть так:
https://tratata.ta/index.php?route=extension/payment/yandex_money/market&per_page=1000&page=24
В ином случае нужны слишком большие таймауты для NGINX и PHP, чтобы дождаться генерации единого YML-файла.
P.S. Нагрузку на сервер может вызывать не только перебор товаров, но и к примеру выполнение операции
$offer->addPicture($this->model_tool_image->resize($product['image'], 600, 600));
в случае, если у вас очищен кэш изображений (бонусом resize часто не только делает саму обрезку, но и генерирует дополнительное изображение в каком-нибудь WebP, чтобы обрадовать Google использованием современных форматов изображений).P.P.S. На скорость выборки (в особенности товаров со всеми атрибутами, опциями и изображениями) может влиять отсутствие дополнительных индексов в БД. Но это уже не относится напрямую к этому модулю.
The text was updated successfully, but these errors were encountered: