Изменения документа Stream триггер

Редактировал(а) Alexandr Fokin 2026/08/28 11:44

От версии 1.1
отредактировано Alexandr Fokin
на 2026/08/26 18:53
Изменить комментарий: К данной версии нет комментариев
К версии 1.4
отредактировано Alexandr Fokin
на 2026/08/28 11:43
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -1,0 +1,20 @@
1 +|(% style="width:147px" %)Введение|(% style="width:1334px" %)К данному решению пришел после [[Гарантированная конкурентная доставка сигнала (wakeup state)>>doc:Проекты и репозитории.Библиотеки.Движок cccc1808\. ProcessEngine.Тема\. Сигналы и триггеры.Про передачу сигнала на процесс.Гарантированная конкурентная доставка сигнала (wakeup state).WebHome]] и оно его заменило.
2 +Нет недостатков прошлого решения.
3 +|(% style="width:147px" %)Реализация|(% style="width:1334px" %)Триггер отслеживает не только поступающие сигналы но и состояние процесса. Находится ли он в состояние асинхронного выполнения или в состоянии ожидания внешнего сигнала.
4 +Триггер запускается, когда есть сигнал и процесс находится в состоянии ожидания.
5 +|(% style="width:147px" %) |(% style="width:1334px" %)(((
6 +* Позволяет убрать лишние запросы пробуждения процесса (когда он и так запущен).
7 +* __Позволяет полностью убрать задержку после остановки процесса__ (если есть новое сообщения, то он сразу же будет пробужден).
8 +За счет того, что триггер точно знает, что есть новые сообщения и процесс только что уснул.
9 +* Позволяет не выполнять wakeup код в конце сессии обработки (если отключить wakeup, оставить только stream trigger)
10 +(блокировка и обновление wakeup entity, проверка wakeup условия).
11 +)))
12 +|(% style="width:147px" %)Offset stream триггер|(% style="width:1334px" %)(((
13 +Можно также хранить в триггере offset (по аналогии с kakfa), в таком случае триггер может избежать перепроверки условия пробуждения (не проверять наличие необработанных сообщений в БД), достаточно только отслеживать значения смещений.
14 +
15 +* Вводит 2 типа события, 1 сигнал о новом сообщении (содержит offset значение), 2 - сообщение от процесса об обработанном смещении (содержит обработанный offset).
16 +* Вводит дополнительное состояние в триггер: максимальный offset сообщения, максимальный offset обработанного процессом сообщения, флаг состояния сна процесса
17 +)))
18 +|(% style="width:147px" %)Каскад триггеров|(% style="width:1334px" %)Способ для обработки конкурентных сигналов (несколько триггеров). Для процесса создается один корневой триггеров, а все другие (дочерние) триггеры передают сигнал на него.
19 +
20 +