Open freimaks opened 3 years ago
Добрый день!
Благодарю за подробное описание, рассмотрим Ваше предложение!
Добрый день!
Благодарю за подробное описание, рассмотрим Ваше предложение!
@ostulov, здравствуйте! Если Вы рассматриваете предложения по доработкам, то есть еще пара моментов:
В админке для Маркета сделать настройку размеров изображений. У Яндекса, судя по документации, есть ограничения - не менее 300 пикселей (по любой из сторон) и не более 3500 пикселей (по большей из сторон). Сейчас в Вашем модуле жестко зашиты размеры 600x600 (рекомендуемые Яндексом) и это не очень удобно в том случае, если используемый шаблон устанавливает другие размеры (например, 800x800, 1200x1200 и т.п.). Соответственно получается, что лишние изображения и отъедают время на генерацию, и занимают лишнее место на диске, при этом никакого смысла в них нет.
Сделать для Маркета использование кэша опциональным с управлением через ту же админку. Тут проблема только для тех, у кого идет постоянная синхронизация складских остатков. Соответственно приходится либо после каждой синхронизации чистить кэш, либо просто глушить его использование в модуле. Если генерация YML по ссылке оптимизирована и укладывается в требуемые 150 секунд, то пусть сервер и генерирует его постоянно при каждом запросе робота.
Всем привет!
Недавно тут задавали вопрос про белый экран и в общем-то напрашивается простое решение - сегментировать 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. На скорость выборки (в особенности товаров со всеми атрибутами, опциями и изображениями) может влиять отсутствие дополнительных индексов в БД. Но это уже не относится напрямую к этому модулю.