Изменения документа Про передачу сигнала на процесс
Редактировал(а) Alexandr Fokin 2026/06/18 22:07
От версии 1.18
отредактировано Alexandr Fokin
на 2026/05/29 19:03
на 2026/05/29 19:03
Изменить комментарий:
К данной версии нет комментариев
К версии 1.14
отредактировано Alexandr Fokin
на 2026/05/17 10:42
на 2026/05/17 10:42
Изменить комментарий:
К данной версии нет комментариев
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -26,21 +26,13 @@ 26 26 |2|(% style="width:662px" %)Высокая интенсивность сигналов, высокая конкуренция за процесс. 27 27 Сигнал нужно подавать через триггер.|(% style="width:513px" %) | | | | | 28 28 |2.1|(% style="width:662px" %)Несколько конкурирующих триггеров с cannot hold lock timeout. 29 -Если не удалось получить блокировку процесса, то выполнение триггера откладывается на некоторый timeout.|(% style="width:513px" %) __Триггеры<-> Процесс.__|+|+|-|-|-29 +Если не удалось получить блокировку процесса, то выполнение триггера откладывается на некоторый timeout.|(% style="width:513px" %) |+|+|-|-|- 30 30 |2.2|(% style="width:662px" %)Один stream триггер. 31 31 Высокая частота сигналов, но низкая конкуренция (условие активации триггера наличие необработанного сигнала и остановка процесса). 32 -Можно использовать без таблицы Wakeup lock.|(% style="width:513px" %)__Simple stream trigger <-> Процесс.__ 33 -\\Transactional outbox. См [[Примеры>>doc:Проекты и репозитории.Библиотеки.Движок cccc1808\. ProcessEngine.Примеры.WebHome]] 3.|+|-|+|+-|- 34 -|2.2.1|(% style="width:662px" %)Каскад триггеров. 35 -Подход, когда 1 корневой simple stream trigger передает сигнал на процесс. 36 -А другие триггеры процесса передают сигнал не на процесс напрямую, а на корневой триггер. 37 -Корневой триггер передает на дочерние stream trigger trigger event о том, что процесс остановился. 38 -Данный подход позволяет использовать несколько триггеров (как в варианте 2.3), но при этом полностью убирает конкуренцию (не требует wakeup lock (и может работать без wakeup condition)).|(% style="width:513px" %)__Дочерние триггеры 39 -<-> Корневой триггер (Simple stream trigger) 40 -<-> Процесс__|+|-|+|+-|- 32 +Можно использовать без таблицы Wakeup lock.|(% style="width:513px" %)Transactional outbox. См [[Примеры>>doc:Проекты и репозитории.Библиотеки.Движок cccc1808\. ProcessEngine.Примеры.WebHome]] 3.|+|-|+|+-|- 41 41 |2.3|(% style="width:662px" %)Несколько конкурирующих триггеров. 42 42 Высокая интенсивность сигналов, высокая конкуренция за процесс. 43 -Для сглаживания конкуренции используется Wakeup lock (share блокировка минимизирует блокировку и сглаживает конкуренцию).|(% style="width:513px" %) __Триггеры<-> Процесс.__|+|-|-|+|+35 +Для сглаживания конкуренции используется Wakeup lock (share блокировка минимизирует блокировку и сглаживает конкуренцию).|(% style="width:513px" %) |+|-|-|+|+ 44 44 |3|(% style="width:662px" %)Периодическая проверка|(% style="width:513px" %)Процесс пробуждается каждые N timeout, используется только 1 timer trigger. См. [[Примеры>>doc:Проекты и репозитории.Библиотеки.Движок cccc1808\. ProcessEngine.Примеры.WebHome]] 1 (блок 2).|+|+|-|-|- 45 45 ))) 46 46 | |