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

От версии 1.13
отредактировано Alexandr Fokin
на 2026/05/17 10:33
Изменить комментарий: Renamed back-links.
К версии 1.2
отредактировано Alexandr Fokin
на 2026/05/05 15:53
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -5,15 +5,10 @@
5 5  |(% style="width:232px" %)Избыточная задержка сигнала|(% style="width:1151px" %)Свойство обозначающее, что процесс может получить сигнал (и продолжить обработку) позже чем мог бы (при использовании других подходов).
6 6  |(% style="width:232px" %)Stream триггер|(% style="width:1151px" %)Триггер, отслеживающий состояние процесса (выполняется он или нет).
7 7  Реализуется через отправку TriggerEvent в момент остановки выполнения процесса (делается автоматически если зарегистрирован).
8 -Пробуждает процесс (передает новый сигнал), только после того как процесс перешел в состояние ожидания.
9 -|(% style="width:232px" %)Wakeup condition|(% style="width:1151px" %)(((
10 -Модуль wakeup condition проверяет условие наличия новых сигналов перед остановкой процесса.
8 +|(% style="width:232px" %)Wakeup condition|(% style="width:1151px" %)Модуль wakeup condition проверяет условие наличия новых сигналов перед остановкой процесса.
11 11  От разработчика требуется реализация хендлера проверки условия.
12 -
13 -[[Гарантированная конкурентная доставка сигнала.>>doc:Проекты и репозитории.Библиотеки.Движок cccc1808\. ProcessEngine.Гарантированная конкурентная доставка сигнала.WebHome]]
14 -)))
15 -|(% style="width:232px" %)Wakeup lock (Wakeup state)|(% style="width:1151px" %)(((
16 -Модуль wakeup lock добавляет отдельную таблицу для синхронизации.
10 +|(% style="width:232px" %)Wakeup state|(% style="width:1151px" %)(((
11 +Модуль wakeup state добавляет отдельную таблицу для синхронизации.
17 17  Используется только в сочетании с Wakeup condition.
18 18  Решает 2 задачи:
19 19  1) Информация о выполнении процесса считывается из Wakeup state (без взятия блокировки процесса). Если процесс выполняется, то сигнал считается доставленным и никаких обновлений не требуется.
... ... @@ -24,22 +24,18 @@
24 24  )))
25 25  )))
26 26  |Типы передачи сигналов|(((
27 -| |(% style="width:662px" %)Тип|(% style="width:513px" %)Пример|Триггер|Избыточная задержка сигнала|Stream триггер|Wakeup condition|Wakeup lock
28 -|1|(% style="width:662px" %)Низкая интенсивность сигналов, низкая конкуренция за процесс.|(% style="width:513px" %)(((
22 +| |(% style="width:662px" %)Тип|(% style="width:513px" %)Пример|Триггер|Избыточная задержка сигнала|Stream триггер|Wakeup condition|Wakeup state
23 +|1|(% style="width:662px" %)Если внешний сигнал единичный и процесс гарантировано остановлен, то его можно подать сразу на процесс (без триггера).|(% style="width:513px" %)(((
29 29  Линейный процесс отправил запрос и ждет 1 событие ответ.
30 -Хендлер события пробуждает процесс напрямую.
25 +Хендлер пробуждает процесс напрямую.
31 31  )))|-|-|-|-|-
32 -|2|(% style="width:662px" %)Высокая интенсивность сигналов, высокая конкуренция за процесс.
33 -Сигнал нужно подавать через триггер.|(% style="width:513px" %) | | | | |
27 +|2|(% style="width:662px" %)Если внешний сигнал множественный или процесс может периодически запускаться, то сигнал нужно подавать через триггер.|(% style="width:513px" %) | | | | |
34 34  |2.1|(% style="width:662px" %)Несколько конкурирующих триггеров с cannot hold lock timeout.
35 35  Если не удалось получить блокировку процесса, то выполнение триггера откладывается на некоторый timeout.|(% style="width:513px" %) |+|+|-|-|-
36 -|2.2|(% style="width:662px" %)Один stream триггер.
37 -Высокая частота сигналов, но низкая конкуренция (условие активации триггера наличие необработанного сигнала и остановка процесса).
38 -Можно использовать без таблицы Wakeup lock.|(% style="width:513px" %)Transactional outbox. См [[Примеры>>doc:Проекты и репозитории.Библиотеки.Движок cccc1808\. ProcessEngine.Примеры.WebHome]] 3.|+|-|+|+-|-
39 -|2.3|(% style="width:662px" %)Несколько конкурирующих триггеров.
40 -Высокая интенсивность сигналов, высокая конкуренция за процесс.
41 -Для сглаживания конкуренции используется Wakeup lock (share блокировка минимизирует блокировку и сглаживает конкуренцию).|(% style="width:513px" %) |+|-|-|+|+
42 -|3|(% style="width:662px" %)Периодическая проверка|(% style="width:513px" %)Процесс пробуждается каждые N timeout, используется только 1 timer trigger. См. [[Примеры>>doc:Проекты и репозитории.Библиотеки.Движок cccc1808\. ProcessEngine.Примеры.WebHome]] 1 (блок 2).|+|+|-|-|-
30 +|2.2|(% style="width:662px" %)Если используется один stream триггер, то можно обойтись без таблицы wakeup state entity.|(% style="width:513px" %)Transactional outbox.|+|-|+|+-|-
31 +|2.3|(% style="width:662px" %)Несколько конкурирующих триггеров.|(% style="width:513px" %) |+|-|-|+|+
32 +
33 +
43 43  )))
44 44  | |
45 45