cron

После установки решения в планировщик cron добавляются следующие задачи:

* * * * * /usr/bin/php -f /home/bitrix/www/php/cron/bonuses.php
* * * * * /usr/bin/php -f /home/bitrix/www/php/cron/catalogDiscounts.php
* * * * * /usr/bin/php -f /home/bitrix/www/php/cron/catalogRatings.php
* * * * * /usr/bin/php -f /home/bitrix/www/php/cron/checkCatalogFeature.php
* * * * * /usr/bin/php -f /home/bitrix/www/php/cron/checkCollections.php
* * * * * /usr/bin/php -f /home/bitrix/www/php/cron/checkFacet.php
* * * * * /usr/bin/php -f /home/bitrix/www/php/cron/checkLabels.php
* * * * * /usr/bin/php -f /home/bitrix/www/php/cron/checkOffers.php
0 * * * * /usr/bin/php -f /home/bitrix/www/php/cron/checkOldOffers.php
20 */2 * * * /usr/bin/php -f /home/bitrix/www/php/cron/checkOrdersReviews.php
* * * * * /usr/bin/php -f /home/bitrix/www/php/cron/checkPushLetters.php
* * * * * /usr/bin/php -f /home/bitrix/www/php/cron/facet.php
* * * * * /usr/bin/php -f /home/bitrix/www/php/cron/images.php
*/10 * * * * /usr/bin/php -f /home/bitrix/www/php/cron/pushApnsTokens.php
30 4 * * * /usr/bin/php -f /home/bitrix/www/php/cron/pushDevices.php
* * * * * /usr/bin/php -f /home/bitrix/www/php/cron/redirects.php
0 0 * * * /usr/bin/php -f /home/bitrix/www/php/cron/sitemap.php
*/30 * * * * /usr/bin/php -f /home/bitrix/www/php/cron/tokens.php
* * * * * /usr/bin/php -f /home/bitrix/www/php/cron/updateCatalogStocksProps.php
10 */12 * * * /usr/bin/php -f /home/bitrix/www/php/cron/users.php
*/5 * * * * /usr/bin/php -f /home/bitrix/www/php/cron/wbImport.php
0 0 * * * /home/bitrix/astdesign-webp-convert.sh /home/bitrix/www/upload/medialibrary/
0 2 * * * /home/bitrix/astdesign-webp-convert.sh /home/bitrix/www/upload/iblock/
0 3 * * * /home/bitrix/astdesign-webp-convert.sh /home/bitrix/www/upload/resize_cache/
*/5 * * * * /home/bitrix/astdesign-restart-after-update.sh /home/bitrix/www/frontend

Если вы их удалили случайно, то восстановите недостающие.

Обратите внимание, что если вы устанавливали решение не в папку /home/bitrix/www, то вам потребуется изменить путь до файлов.

За что отвечают задачи

Без cron эти вещи просто не происходят — молча, без ошибок на сайте. Поэтому при разборе «функция не работает» расписание проверяют первым делом.

Каталог

Задача

За что отвечает

facet

обновление фасетного индекса у изменённых товаров — от индекса зависит умный фильтр

checkFacet

полная пересборка фасетного индекса, когда Битрикс помечает, что его нужно перестроить

updateCatalogStocksProps

свойство наличия на складах, по которому работает фильтр по складам

catalogDiscounts

пересчёт размера скидки у товаров

catalogRatings

пересчёт рейтинга товаров по отзывам

checkOffers

пересборка связок вариантов товаров после изменения товаров. Если вариантами не пользуетесь, задача ничего не делает, но убирать её не нужно

checkOldOffers

раз в час удаляет связки вариантов у удалённых товаров

checkLabels

привязка лейблов к товарам по фильтру

checkCollections

привязка товаров к коллекциям по фильтру

checkCatalogFeature

привязка свойств с иконками к товарам по фильтру

images

заранее нарезает уменьшенные копии картинок каталога, брендов и других разделов, чтобы страница не ждала ресайза при первом открытии. В WebP картинки не переводит — это делает отдельный скрипт, см. ниже

wbImport

импорт карточек и отзывов с Wildberries

Покупатели, заказы и маркетинг

Задача

За что отвечает

bonuses

начисление и сгорание бонусов, флеш-бонусы, бонусы ко дню рождения

checkOrdersReviews

письма покупателям с просьбой оставить отзыв о выполненном заказе

tokens

удаление истёкших токенов авторизации, а вместе с ними — избранного и сравнения гостей. Сколько живёт токен, задаёт поле Сколько дней хранить токены неактивных пользователей на вкладке Клиенты и авторизация в настройках решения, по умолчанию 30 дней

users

удаление пользователей, не подтвердивших регистрацию: неактивных, зарегистрированных больше трёх дней назад и без заказов. Работает, пока включена галочка Удалять не подтвердивших регистрацию пользователей на той же вкладке. Данные пользователей эта задача не синхронизирует

Мобильное приложение

Задача

За что отвечает

checkPushLetters

отправка push-рассылок порциями

pushDevices, pushApnsTokens

обслуживание токенов устройств: чистка мёртвых, обновление для iOS

Сайт целиком

Задача

За что отвечает

sitemap

сборка sitemap.xml раз в сутки

redirects

следит за списком редиректов: если он изменился, помечает клиентскую часть на пересборку, чтобы новые правила заработали. Адреса страниц товаров эта задача не формирует

Скрипты на сервере

Последние четыре строки запускают не PHP-файлы решения, а два скрипта в /home/bitrix/. Их создаёт мастер prepare-marketpro.sh при установке клиентской части.

Скрипт

За что отвечает

astdesign-webp-convert.sh

ночью обходит папку и кладёт рядом с каждой картинкой JPG или PNG копию в WebP: photo.jpg → photo.jpg.webp. Уже сконвертированные файлы пропускает. Копию отдаёт браузеру nginx, если браузер поддерживает WebP. Три строки — три папки: медиабиблиотека, картинки инфоблоков и уменьшенные копии

astdesign-restart-after-update.sh

раз в пять минут проверяет, не нужно ли пересобрать клиентскую часть. Решение просит об этом после обновления, после смены некоторых настроек и после изменения редиректов. Тогда скрипт выполняет npm run build и перезапускает сайт через pm2 restart all

После каждой пересборки сервер ещё 5–10 минут в фоне готовит обновление для мобильного приложения — см. Обновление приложения без публикации в магазинах.

Если убрать строку со скриптом пересборки, обновления решения и новые редиректы не дойдут ни до сайта, ни до приложения, пока вы не пересоберёте клиентскую часть вручную.

Как проверить, что задачи идут

Самый простой способ — не читать логи, а посмотреть на результат: измените остаток у товара и через минуту-две проверьте фильтр по складам, или откройте sitemap.xml и посмотрите дату у свежего товара.

Список задач в системе смотрят командой crontab -l -u bitrix на сервере. Если каких-то строк из списка выше нет — добавьте недостающие: задачи независимы, и отсутствие одной ломает только свою функцию.

Путь /home/bitrix/www подставьте свой, если решение установлено в другую папку.