Нагрузка и лимиты в сценариях

Скорость обработки сценариев на проекте ограничена лимитами.

Лимиты регулируются автоматически в зависимости от размеров базы: чем больше клиентов, тем больше лимит на обработку событий в минуту.

На сценарии по событию, массовые и транзакционные сценарии действуют разные лимиты.

Сценарию по событию

Запускаются после определённых событий, например: «Клиент попал в сегмент», «Заказ добавлен или изменен», «Выдано действие», «Клиент зарегистрирован».

На обработку сценариев по событиям выделяется самый большой лимит в рамках проекта.

Массовые сценарии

К массовым сценариям относятся все сценарии по расписанию. Также некоторые сценарии с запуском по событию могут обрабатываться как массовые сценарии, если данные приходят в систему с импортами. Например, сценарии по событию Продукт в списке продуктов изменился используют лимит массовых сценариев.

Сценарии по расписанию обрабатываются с более низким приоритетом.

Транзакционные сценарии

Транзакционные сценарии работают по определённым событиям. Это самые приоритетные сценарии с гарантией скорости обработки.

Транзакционные сценарии имеют самый маленький лимит обработки в минуту.

Почему сценарии обрабатываются медленнее?

При достижении лимита обработки события помещаются в очередь. Тогда сценарии обрабатываются медленнее, затрачивая все разрешенные ресурсы.

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

image-3.png

Если в сценарии используются сложные условия, то появляется предупреждение:

02_flow_load_and_limits

В таком случае нужно упростить фильтр в блоке «Условие» по инструкции.

Окно с информацией по текущей нагрузке сценариев можно открыть в любой момент со страницы кампаний:

Снимок экрана 2024-09-19 в 16.25.17.png

Как оптимизировать работу сценариев?

Сценарию по событию

  • Если на проекте есть несколько сценариев, которые запускаются по одному событию в стартовом блоке, лучше объединить их в один сценарий. Например, совместить цепочки по брошенной корзине и брошенному просмотру:

    00_flow_load_and_limits.png

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

Массовые сценарии

  • Все условия по клиенту до группы шагов желательно перенести в блок «Расписание», чтобы избежать лишней нагрузки:

    01_flow_load_and_limits

  • Если на проекте есть несколько сценариев с датой запуска в одно и то же время или с небольшой разницей, это может вызывать высокую нагрузку. Лучше распределить запуски таких сценариев в течение дня, с интервалом от одного и более часов.

  • Чтобы ускорить пересчёт блока «Расписание», можно использовать сегменты с нужными условиями и запустить их пересчёт заранее, до запуска сценария.

Если данные поступают через массовые импорты, то нагрузка на сценарии по событию «Продукт в списке продуктов изменился» может значительно увеличиться, так как они будут обрабатываться в очереди массовых сценариев.

Рекомендуем следить за объёмом импортов и, по возможности, обновлять данные с интервалом. Те же рекомендации — для событий «Обновление данных клиента» и «Изменение заданного баланса».

Транзакционные сценарии

  • Настраивайте транзакционные сценарии только на те события, при которых коммуникация с клиентом должна быть моментальной. Например, на отправку кода авторизации или уведомление о статусе заказа.
  • Большое количество транзакционных сценариев может замедлять их обработку.

Почему клиенты задержались в блоке «Ожидание»?

Если в сценарии используется блок «Ожидание», то массовое попадание клиентов в блок и выход из него может вызвать задержки.

Например, клиент попал в блок «Ожидание» на 1 день, но из-за большой нагрузки задержался в блоке и прохождение завершилось:

03_flow_load_and_limits.png

В блоке «Ожидание» отобразится список клиентов, которые задержались в блоке дольше запланированного времени:

04_flow_load_and_limits

Почему клиенты не успели пройти по сценарию?

Если в течение 12 часов сценарий не успел обработать события из-за превышения лимитов, то клиенты завершат прохождение с пометкой «Исполнение сценария значительно отстало от запланированного времени и больше не является актуальным».

Пример остановки прохождения из-за задержки обработки сценария:

05_flow_load_and_limits.png

В блоке сценария отобразится причина остановки прохождений и список клиентов.