Изменения документа Про передачу сигнала на процесс
Редактировал(а) Alexandr Fokin 2026/05/07 14:23
От версии 1.10
отредактировано Alexandr Fokin
на 2026/05/07 14:21
на 2026/05/07 14:21
Изменить комментарий:
К данной версии нет комментариев
К версии 1.9
отредактировано Alexandr Fokin
на 2026/05/06 21:04
на 2026/05/06 21:04
Изменить комментарий:
К данной версии нет комментариев
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -21,20 +21,15 @@ 21 21 ))) 22 22 |Типы передачи сигналов|((( 23 23 | |(% style="width:662px" %)Тип|(% style="width:513px" %)Пример|Триггер|Избыточная задержка сигнала|Stream триггер|Wakeup condition|Wakeup lock 24 -|1|(% style="width:662px" %) Низкаяинтенсивностьсигналов,низкаяконкуренцияза процесс.|(% style="width:513px" %)(((24 +|1|(% style="width:662px" %)Если внешний сигнал единичный и процесс гарантировано остановлен, то его можно подать сразу на процесс (без триггера).|(% style="width:513px" %)((( 25 25 Линейный процесс отправил запрос и ждет 1 событие ответ. 26 26 Хендлер события пробуждает процесс напрямую. 27 27 )))|-|-|-|-|- 28 -|2|(% style="width:662px" %)Высокая интенсивность сигналов, высокая конкуренция за процесс. 29 -Сигнал нужно подавать через триггер.|(% style="width:513px" %) | | | | | 28 +|2|(% style="width:662px" %)Если внешний сигнал множественный или процесс может периодически запускаться, то сигнал нужно подавать через триггер.|(% style="width:513px" %) | | | | | 30 30 |2.1|(% style="width:662px" %)Несколько конкурирующих триггеров с cannot hold lock timeout. 31 31 Если не удалось получить блокировку процесса, то выполнение триггера откладывается на некоторый timeout.|(% style="width:513px" %) |+|+|-|-|- 32 -|2.2|(% style="width:662px" %)Один stream триггер. 33 -Высокая частота сигналов, но низкая конкуренция (условие активации триггера наличие необработанного сигнала и остановка процесса). 34 -Можно использовать без таблицы Wakeup lock.|(% style="width:513px" %)Transactional outbox. См [[Примеры>>doc:Проекты и репозитории.Библиотеки.Движок cccc1808\. ProcessEngine.Примеры.WebHome]] 3.|+|-|+|+-|- 35 -|2.3|(% style="width:662px" %)Несколько конкурирующих триггеров. 36 -Высокая интенсивность сигналов, высокая конкуренция за процесс. 37 -Для сглаживания конкуренции используется Wakeup lock (share блокировка минимизирует блокировку и сглаживает конкуренцию).|(% style="width:513px" %) |+|-|-|+|+ 31 +|2.2|(% style="width:662px" %)Если используется один stream триггер, то можно обойтись без таблицы wakeup state entity.|(% style="width:513px" %)Transactional outbox. См [[Примеры>>doc:Проекты и репозитории.Библиотеки.Движок cccc1808\. ProcessEngine.Примеры.WebHome]] 3.|+|-|+|+-|- 32 +|2.3|(% style="width:662px" %)Несколько конкурирующих триггеров.|(% style="width:513px" %) |+|-|-|+|+ 38 38 |3|(% style="width:662px" %)Периодическая проверка|(% style="width:513px" %)Процесс пробуждается каждые N timeout, используется только 1 timer trigger. См. [[Примеры>>doc:Проекты и репозитории.Библиотеки.Движок cccc1808\. ProcessEngine.Примеры.WebHome]] 1 (блок 2).|+|+|-|-|- 39 39 ))) 40 40 | |