Товары ВКонтакте 2.0

Автоэкспорт товаров на cron

Как работает автоэкспорт

По умолчанию в модуле автоэкспорт товаров в ВКонтакте работает с помощью агентов, в частности \Bxmaker\Vk\Agent::exportData();. Агент по очереди проходит по каждой выгрузке, формирут список товаров для экспорта и выгружает. Последовательность действий такая же, как при ручном экспорте. После окончания экспорта начинается экспорт следующей активной выгрузки и так по кругу.

Большое количество агентов в битриксе может влиять на скорость выгрузки товаров. Также сама выгрузка может задерживать выполнение других агентов. В этом случае рациональнее будет перевести автоэкспорт на cron (фоновые задачи)

Для этого нужно сделать следующие действия:

  1. Отключить выполнение агента автоэкспорта
  2. Добавление cron задания

Отключение агента автоэкспорта

Переходим на страницу агентов Рабочий стол / Настройки / Настройки продукта / Агенты, используя фильтр находим нужный агент и деактивируем его

2020-12-30_18-27.png

Добавление cron задания

Путь до файла можно найти на странице настроек модуля Рабочий стол / BXmaker / Товары ВКонтакте / Настройки модуля

2020-12-30_18-30.png

Если добавлять через личный кабинет хостера или панель управления хостингом, нужно найти соответствующий раздел, называются они по разному, например cron задания, фоновые задачи, фоновые процессы и тп. В любом случае нужно будет указать путь до файла и периодичность запуска.

Выполнение должно быть ежеминутным.

Если это делать через терминал, то задание можно добавить выполнив в терминале команду - crontab -e, от пользователя bitrix и добавив задание

* * * * * /usr/bin/php -f /var/www/html/local/modules/bxmaker.vk/tools/cron.php

Также при стандартной установке правил через crontab -e запуск может не выполняться на сервера с окружением от битрикса. Часто задания по крону записываются в файлах из директории /etc/cron.d/.

В таком случае можно добавить запись так

* * * * *  bitrix test -f /home/bitrix/www/bitrix/modules/bxmaker.vk/tools/cron.php && /usr/bin/php -f /home/bitrix/www/bitrix/modules/bxmaker.vk/tools/cron.php  > 
/home/bitrix/www/bxmaker.vk.log 2>&1

Если не нужно записывать ошибки в импровизированный лог в виде файла /home/bitrix/www/bxmaker.vk.log, можно туда добавить запись такую

* * * * *  bitrix test -f /home/bitrix/www/bitrix/modules/bxmaker.vk/tools/cron.php && /usr/bin/php -f /home/bitrix/www/bitrix/modules/bxmaker.vk/tools/cron.php  > 
/dev/null 2>&1