Изменения документа Про передачу сигнала на процесс
Редактировал(а) Alexandr Fokin 2026/06/18 22:07
От версии 1.15
отредактировано Alexandr Fokin
на 2026/05/29 16:22
на 2026/05/29 16:22
Изменить комментарий:
К данной версии нет комментариев
К версии 1.13
отредактировано Alexandr Fokin
на 2026/05/17 10:33
на 2026/05/17 10:33
Изменить комментарий:
Renamed back-links.
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -9,12 +9,18 @@ 9 9 |(% style="width:232px" %)Wakeup condition|(% style="width:1151px" %)((( 10 10 Модуль wakeup condition проверяет условие наличия новых сигналов перед остановкой процесса. 11 11 От разработчика требуется реализация хендлера проверки условия. 12 + 13 +[[Гарантированная конкурентная доставка сигнала.>>doc:Проекты и репозитории.Библиотеки.Движок cccc1808\. ProcessEngine.Гарантированная конкурентная доставка сигнала.WebHome]] 12 12 ))) 13 13 |(% style="width:232px" %)Wakeup lock (Wakeup state)|(% style="width:1151px" %)((( 14 14 Модуль wakeup lock добавляет отдельную таблицу для синхронизации. 15 15 Используется только в сочетании с Wakeup condition. 18 +Решает 2 задачи: 19 +1) Информация о выполнении процесса считывается из Wakeup state (без взятия блокировки процесса). Если процесс выполняется, то сигнал считается доставленным и никаких обновлений не требуется. 20 +2) Синхронизация проверки условия Wakeup condition, гарантия что сигнал не будет утерян. 21 +В конце сессии обработки процесса Wakeup state блокируется и только после этого проверяется условие наличие новых сигналов Wakeup condition, это гарантирует что ни один поступивший сигнал не будет утерян. 16 16 17 - [[Гарантированнаяконкурентнаядоставкасигнала>>doc:Проектыирепозитории.Библиотеки.Движок cccc1808\. ProcessEngine.Гарантированнаяконкурентная доставкасигнала.WebHome]]23 +Такой подход позволяет минимизировать ожидание на блокировках. 18 18 ))) 19 19 ))) 20 20 |Типы передачи сигналов|((( ... ... @@ -30,10 +30,6 @@ 30 30 |2.2|(% style="width:662px" %)Один stream триггер. 31 31 Высокая частота сигналов, но низкая конкуренция (условие активации триггера наличие необработанного сигнала и остановка процесса). 32 32 Можно использовать без таблицы 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" %) |+|-|+|+-|- 37 37 |2.3|(% style="width:662px" %)Несколько конкурирующих триггеров. 38 38 Высокая интенсивность сигналов, высокая конкуренция за процесс. 39 39 Для сглаживания конкуренции используется Wakeup lock (share блокировка минимизирует блокировку и сглаживает конкуренцию).|(% style="width:513px" %) |+|-|-|+|+