Нагрузка и лимиты в сценариях
Скорость обработки сценариев на проекте ограничена лимитами.
Лимиты регулируются автоматически в зависимости от размеров базы: чем больше клиентов, тем больше лимит на обработку событий в минуту.
На сценарии по событию, массовые и транзакционные сценарии действуют разные лимиты.
Сценарию по событию
Запускаются после определённых событий, например: «Клиент попал в сегмент», «Заказ добавлен или изменен», «Выдано действие», «Клиент зарегистрирован».
На обработку сценариев по событиям выделяется самый большой лимит в рамках проекта.
Массовые сценарии
К массовым сценариям относятся все сценарии по расписанию. Также некоторые сценарии с запуском по событию могут обрабатываться как массовые сценарии, если данные приходят в систему с импортами. Например, сценарии по событию Продукт в списке продуктов изменился используют лимит массовых сценариев.
Сценарии по расписанию обрабатываются с более низким приоритетом.
Транзакционные сценарии
Транзакционные сценарии работают по определённым событиям. Это самые приоритетные сценарии с гарантией скорости обработки.
Транзакционные сценарии имеют самый маленький лимит обработки в минуту.
Почему сценарии обрабатываются медленнее?
При достижении лимита обработки события помещаются в очередь. Тогда сценарии обрабатываются медленнее, затрачивая все разрешенные ресурсы.
В момент, когда достигнут лимит, отображается предупреждение, нажав на которое, можно узнать текущую нагрузку с разбивкой по типам сценариев и по конкретным сценариям:
Если в сценарии используются сложные условия, то появляется предупреждение:
В таком случае нужно упростить фильтр в блоке «Условие» по инструкции.
Окно с информацией по текущей нагрузке сценариев можно открыть в любой момент со страницы кампаний:
Как оптимизировать работу сценариев?
Сценарию по событию
-
Если на проекте есть несколько сценариев, которые запускаются по одному событию в стартовом блоке, лучше объединить их в один сценарий. Например, совместить цепочки по брошенной корзине и брошенному просмотру:
-
Если обработка сценария по событию задерживается, необходимо проверить количество действий в системе. Возможно, стоит ограничить количество срабатываний на одном клиенте.
Массовые сценарии
-
Все условия по клиенту до группы шагов желательно перенести в блок «Расписание», чтобы избежать лишней нагрузки:
-
Если на проекте есть несколько сценариев с датой запуска в одно и то же время или с небольшой разницей, это может вызывать высокую нагрузку. Лучше распределить запуски таких сценариев в течение дня, с интервалом от одного и более часов.
-
Чтобы ускорить пересчёт блока «Расписание», можно использовать сегменты с нужными условиями и запустить их пересчёт заранее, до запуска сценария.
Если данные поступают через массовые импорты, то нагрузка на сценарии по событию «Продукт в списке продуктов изменился» может значительно увеличиться, так как они будут обрабатываться в очереди массовых сценариев.
Рекомендуем следить за объёмом импортов и, по возможности, обновлять данные с интервалом. Те же рекомендации — для событий «Обновление данных клиента» и «Изменение заданного баланса».
Транзакционные сценарии
- Настраивайте транзакционные сценарии только на те события, при которых коммуникация с клиентом должна быть моментальной. Например, на отправку кода авторизации или уведомление о статусе заказа.
- Большое количество транзакционных сценариев может замедлять их обработку.
Почему клиенты задержались в блоке «Ожидание»?
Если в сценарии используется блок «Ожидание», то массовое попадание клиентов в блок и выход из него может вызвать задержки.
Например, клиент попал в блок «Ожидание» на 1 день, но из-за большой нагрузки задержался в блоке и прохождение завершилось:
В блоке «Ожидание» отобразится список клиентов, которые задержались в блоке дольше запланированного времени:
Почему клиенты не успели пройти по сценарию?
Если в течение 12 часов сценарий не успел обработать события из-за превышения лимитов, то клиенты завершат прохождение с пометкой «Исполнение сценария значительно отстало от запланированного времени и больше не является актуальным».
Пример остановки прохождения из-за задержки обработки сценария:
В блоке сценария отобразится причина остановки прохождений и список клиентов.