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

Лимиты в сценариях — это количество

Скорость обработки сценариев на проекте ограничена лимитами — объемом событий, который механика может обработать в минуту.

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

Какие лимиты действуют на сценарии

Зависит от типа сценария.

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

Запускаются после определённых событий, например, после выполнения заказа или окончания сессии.

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

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

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

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

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

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

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

Что происходит при превышении лимита

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

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

flow-limits-info1.png
flow-limits-info2.png
flow-limits-info3.png

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

flow-limits-condition

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

Задержка клиентов в блоке «Ожидание»

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

flow-limits-delay1.png
Клиент попал в блок «Ожидание» на один день, но из-за большой нагрузки задержался в блоке и прохождение завершилось.

Список таких клиентов можно скачать в блоке:

flow-limits-delay2.png

Задержка исполнения сценария

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

flow-limits-out.png

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

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

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

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

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

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

01_flow_load_and_limits

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

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

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

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

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

lim1.png

lim2.png

В разделе проблем можно подписаться на уведомления по электронной почте (сущность — «Здоровье сценариев»).