Редактировал(а) Alexandr Fokin 2026/06/18 22:07

От версии 1.12
отредактировано Alexandr Fokin
на 2026/05/17 10:32
Изменить комментарий: К данной версии нет комментариев
К версии 1.15
отредактировано Alexandr Fokin
на 2026/05/29 16:22
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -9,18 +9,12 @@
9 9  |(% style="width:232px" %)Wakeup condition|(% style="width:1151px" %)(((
10 10  Модуль wakeup condition проверяет условие наличия новых сигналов перед остановкой процесса.
11 11  От разработчика требуется реализация хендлера проверки условия.
12 -
13 -[[Гарантированная конкурентная доставка сигнала.>>doc:Проекты и репозитории.Библиотеки.Движок cccc1808\. ProcessEngine.Гарантированная конкурентная доставка сигнала\..WebHome]]
14 14  )))
15 15  |(% style="width:232px" %)Wakeup lock (Wakeup state)|(% style="width:1151px" %)(((
16 16  Модуль wakeup lock добавляет отдельную таблицу для синхронизации.
17 17  Используется только в сочетании с Wakeup condition.
18 -Решает 2 задачи:
19 -1) Информация о выполнении процесса считывается из Wakeup state (без взятия блокировки процесса). Если процесс выполняется, то сигнал считается доставленным и никаких обновлений не требуется.
20 -2) Синхронизация проверки условия Wakeup condition, гарантия что сигнал не будет утерян.
21 -В конце сессии обработки процесса Wakeup state блокируется и только после этого проверяется условие наличие новых сигналов Wakeup condition, это гарантирует что ни один поступивший сигнал не будет утерян.
22 22  
23 -Такой подход позволяет минимизировать ожидание на блокировках.
17 +[[Гарантированная конкурентная доставка сигнала>>doc:Проекты и репозитории.Библиотеки.Движок cccc1808\. ProcessEngine.Гарантированная конкурентная доставка сигнала.WebHome]]
24 24  )))
25 25  )))
26 26  |Типы передачи сигналов|(((
... ... @@ -36,6 +36,10 @@
36 36  |2.2|(% style="width:662px" %)Один stream триггер.
37 37  Высокая частота сигналов, но низкая конкуренция (условие активации триггера наличие необработанного сигнала и остановка процесса).
38 38  Можно использовать без таблицы Wakeup lock.|(% style="width:513px" %)Transactional outbox. См [[Примеры>>doc:Проекты и репозитории.Библиотеки.Движок cccc1808\. ProcessEngine.Примеры.WebHome]] 3.|+|-|+|+-|-
33 +|2.2.1|(% style="width:662px" %)Каскад триггеров.
34 +Подход, когда 1 stream trigger передает сигнал на процесс.
35 +А другие триггеры процесса передают сигнал не на процесс напрямую, а на stream триггер.
36 +Данный подход позволяет использовать несколько триггеров (как в варианте 2.3), но не требует wakeup lock (и может работать без wakeup condition).|(% style="width:513px" %) |+|-|+|+-|-
39 39  |2.3|(% style="width:662px" %)Несколько конкурирующих триггеров.
40 40  Высокая интенсивность сигналов, высокая конкуренция за процесс.
41 41  Для сглаживания конкуренции используется Wakeup lock (share блокировка минимизирует блокировку и сглаживает конкуренцию).|(% style="width:513px" %) |+|-|-|+|+