# cron

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

```none
* * * * * /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
```

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


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

:::

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

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

**Каталог**

| Задача | За что отвечает |
|--------|-----------------|
| `facet` | обновление фасетного индекса у изменённых товаров — от индекса зависит умный фильтр |
| `checkFacet` | полная пересборка фасетного индекса, когда Битрикс помечает, что его нужно перестроить |
| `updateCatalogStocksProps` | свойство наличия на складах, по которому работает фильтр по складам |
| `catalogDiscounts` | пересчёт размера скидки у товаров |
| `catalogRatings` | пересчёт рейтинга товаров по отзывам |
| `checkOffers` | пересборка связок [вариантов товаров](/s/marketpro/doc/varianty-tovarov-perekryostnye-ssylki-JzDyR4nEus) после изменения товаров. Если вариантами не пользуетесь, задача ничего не делает, но убирать её не нужно |
| `checkOldOffers` | раз в час удаляет связки вариантов у удалённых товаров |
| `checkLabels` | привязка [лейблов](/s/marketpro/doc/lejbly-IObquDiAA8) к товарам по фильтру |
| `checkCollections` | привязка товаров к [коллекциям](/s/marketpro/doc/kollekcii-tb811nD270) по фильтру |
| `checkCatalogFeature` | привязка [свойств с иконками](/s/marketpro/doc/svojstva-s-ikonkami-KCEwxLTbFK) к товарам по фильтру |
| `images` | заранее нарезает уменьшенные копии картинок каталога, брендов и других разделов, чтобы страница не ждала ресайза при первом открытии. В WebP картинки не переводит — это делает отдельный скрипт, см. ниже |
| `wbImport` | [импорт карточек и отзывов с Wildberries](/s/marketpro/doc/import-s-wildberries-gq6Wg233q9) |

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

| Задача | За что отвечает |
|--------|-----------------|
| `bonuses` | начисление и сгорание бонусов, флеш-бонусы, бонусы ко дню рождения |
| `checkOrdersReviews` | письма покупателям с просьбой оставить отзыв о выполненном заказе |
| `tokens` | удаление истёкших токенов авторизации, а вместе с ними — избранного и сравнения гостей. Сколько живёт токен, задаёт поле **Сколько дней хранить токены неактивных пользователей** на вкладке **Клиенты и авторизация** в настройках решения, по умолчанию 30 дней |
| `users` | удаление пользователей, не подтвердивших регистрацию: неактивных, зарегистрированных больше трёх дней назад и без заказов. Работает, пока включена галочка **Удалять не подтвердивших регистрацию пользователей** на той же вкладке. Данные пользователей эта задача не синхронизирует |

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

| Задача | За что отвечает |
|--------|-----------------|
| `checkPushLetters` | отправка push-рассылок порциями |
| `pushDevices`, `pushApnsTokens` | обслуживание токенов устройств: чистка мёртвых, обновление для iOS |

**Сайт целиком**

| Задача | За что отвечает |
|--------|-----------------|
| `sitemap` | сборка `sitemap.xml` раз в сутки |
| `redirects` | следит за списком [редиректов](/s/marketpro/doc/redirekty-9aa1p5i3tG): если он изменился, помечает клиентскую часть на пересборку, чтобы новые правила заработали. Адреса страниц товаров эта задача не формирует |

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

Последние четыре строки запускают не PHP-файлы решения, а два скрипта в `/home/bitrix/`. Их создаёт мастер `prepare-marketpro.sh` при [установке клиентской части](/s/marketpro/doc/ustanovka-klientskoj-chasti-resheniya-jXxzjn9JLA).

| Скрипт | За что отвечает |
|--------|-----------------|
| `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 минут в фоне готовит обновление для мобильного приложения — см. [Обновление приложения без публикации в магазинах](/s/marketpro/doc/obnovlenie-prilozheniya-bez-publikacii-v-magazinah-NP2xVeXT6q).

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

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

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

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

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

---

**Documents**

- [Установка решения](https://docs.astdesign.ru/s/marketpro/doc/ustanovka-resheniya-Z8Q6r79liU)
- [FAQ перед покупкой](https://docs.astdesign.ru/s/marketpro/doc/faq-pered-pokupkoj-HPgKP7mWDT)
- [Общая настройка](https://docs.astdesign.ru/s/marketpro/doc/obshaya-nastrojka-Io6HZQaGXf)
- [Шаблон](https://docs.astdesign.ru/s/marketpro/doc/shablon-ylLAFZV3o8)
- [Главная страница](https://docs.astdesign.ru/s/marketpro/doc/glavnaya-stranica-7PwYozaVVo)
- [Магазины (склады)](https://docs.astdesign.ru/s/marketpro/doc/magaziny-sklady-7rEEZJrA45)
- [Каталог](https://docs.astdesign.ru/s/marketpro/doc/katalog-FpnYzZr900)
- [Поиск](https://docs.astdesign.ru/s/marketpro/doc/poisk-xsDdFVh5h0)
- [Текстовые страницы](https://docs.astdesign.ru/s/marketpro/doc/tekstovye-stranicy-jVtNXZv3T5)
- [Реклама и маркетинг](https://docs.astdesign.ru/s/marketpro/doc/reklama-i-marketing-iZkaCoxr5b)
- [Региональность](https://docs.astdesign.ru/s/marketpro/doc/regionalnost-bCuM9AOBNO)
- [Корзина](https://docs.astdesign.ru/s/marketpro/doc/korzina-Mh27pZA7v9)
- [Оформление заказа](https://docs.astdesign.ru/s/marketpro/doc/oformlenie-zakaza-VyvQjOQxZo)
- [Авторизация](https://docs.astdesign.ru/s/marketpro/doc/avtorizaciya-5HwEb1oDJG)
- [SEO и аналитика](https://docs.astdesign.ru/s/marketpro/doc/seo-i-analitika-d1Hw6c4YAM)
- [Уведомления](https://docs.astdesign.ru/s/marketpro/doc/uvedomleniya-SKDyjYg14J)
- [Мобильное приложение](https://docs.astdesign.ru/s/marketpro/doc/mobilnoe-prilozhenie-F5E0hT7TnN)
- [Обновление решения](https://docs.astdesign.ru/s/marketpro/doc/obnovlenie-resheniya-RRRgtxV5uH)
- [Для разработчика](https://docs.astdesign.ru/s/marketpro/doc/dlya-razrabotchika-WJePeJCmpy)
- [Интеграции](https://docs.astdesign.ru/s/marketpro/doc/integracii-D3DqjYOZYm)
- [Что делать, если что-то не работает](https://docs.astdesign.ru/s/marketpro/doc/chto-delat-esli-chto-to-ne-rabotaet-Q8L8sTVJF8)