Высокоприоритетные сценарии
По умолчанию задачи всех сценариев обрабатываются общими обработчиками в порядке поступления. Если в платформе много сценариев и нагрузка высокая, задачи важного сценария могут ждать обработки вместе с остальными.
Чтобы задачи сценария обрабатывались раньше обычных, сценарий можно пометить как высокоприоритетный. Задачи всех высокоприоритетных сценариев обрабатываются в класт ере выделенными обработчиками: они сначала разбирают приоритетные задачи, а затем берутся за обычные.
Высокий приоритет сценария — это отдельный механизм от приоритетной отправки в рассылках. Приоритет сценария ускоряет обработку задач (прохождение узлов), а приоритетная отправка ускоряет отправку сообщений в каналах. Они работают независимо и дополняют друг друга.
Когда использовать
Высокий приоритет стоит назначать сценариям, задержка обработки которых критична для бизнеса — например, сценариям, которые отправляют сообщения сразу после действия пользователя.
Как включить
Для того, чтобы активировать опцию, перейдите в настройки сценария и включите переключатель Высокий приоритет:
Затем сохраните сценарий. Перезапускать сервисы не нужно — новое значение подхватывается сразу.
Приоритет можно изменить в любой момент: выключите переключатель и сохраните сценарий. Изменение влияет только на новые задачи — профили, которые уже находятся в сценарии, продолжат обработку с прежним приоритетом.
Если сценарий уже запущен
Приоритет задаётся на уровне задачи сценария, а не на уровне сценария. Приоритет фиксируется в задаче в момент её старта и сохраняется за ней до завершения обработки. Поэтому включение или отключение флага в уже запущенном сценарии не пересматривает приоритет существующих задач.
- Профиль, который в момент изменения флага находится в узле Пауза, доработает сценарий со старым приоритетом. Действие «пересчитать время» в этом узле (например, сократить ожидание) сдвигает только момент, когда задача снова будет подхвачена обработчиком, а не её приоритет.
- Приоритет пересчитывается в двух случаях: при старте сценария (новая задача получает приоритет сценария на момент старта) и при переходе по узлу Перейти в сценарий (копия задачи в целевом сценарии получает приоритет целевого сценария).
- Пока в системе есть высокоприоритетные задачи, выделенные обработчики не берут обычные. Когда высокоприоритетных задач нет, они обрабатывают и обычные — уже зависшие обычные задачи того же сценария могут обработаться выделенными обработчиками, но не потому, что их приоритет изменился.
Что происходит при включении
- Выделенная обработка. Задачи сценария обрабатываются выделенными обработчиками на хостах, которые администратор платформы настроил для приоритетных задач. Пока есть высокоприоритетные задачи, эти обработчики не берут обычные. Если высокоприоритетных задач нет, обработчики помогают с обычными — пропускная способность обычных сценариев не снижается.
- Приоритетная отправка в узлах рассылок. Во всех узлах Каналы сценария переключатель Высокий приоритет включается автоматически и блокируется — вручную его выключить нельзя. В обычных сценариях переключатель доступен для ручного управления. Переключение приоритета сценария туда и обратно не затирает значение, которое пользователь выставил в кампании: оно возвращается, как только сценарий снова становится обычным.
Ограничения
- Приоритет не гарантирует время обработки или доставки. Он задаёт порядок в очереди, но не отменяет остальные ограничения платформы: лимиты отправки, очереди каналов и настройки скорости рассылок действуют как обычно.
- Приоритетная отправка сообщений работает не во всех каналах. Подробности — в Триггерная рассылка.
- Обработка кампании внутри сценария синхронна: обработчик занят ею целиком, от подбора получателей до публикации в очередь. Приоритет ускоряет то, как быстро обработчик до кампании доберётся, но внутри самой отправки общие для всех кампаний этапы идут в общем порядке.
- Отказ узла не приводит к потере или повторной обработке профилей: незавершённые задачи автоматически передаются другим узлам кластера.