Версия 7.7 от Alexandr Fokin на 2026/05/17 10:38

Скрыть последних авторов
Alexandr Fokin 7.5 1 |(% style="width:196px" %) |(% style="width:1286px" %)[[Про передачу сигнала на процесс>>doc:Проекты и репозитории.Библиотеки.Движок cccc1808\. ProcessEngine.Про передачу сигнала на процесс.WebHome]] (2.3)
Alexandr Fokin 3.4 2 |(% style="width:196px" %)Схема конкурентного взаимодействия между триггером и процессом.|(% style="width:1286px" %)(((
Alexandr Fokin 7.7 3 (% style="width:1060px" %)
4 |(% style="width:183px" %)Решаемые задачи|(% style="width:955px" %)(((
Alexandr Fokin 7.4 5 1. Избежание избыточных блокировок и избыточных ожиданий блокировок.
Alexandr Fokin 7.2 6 11. Триггер не пытается взять блокировку над процессом лишний раз, если процесс выполняется.
Alexandr Fokin 7.7 7 (Информация о выполнении процесса считывается из Wakeup state (без взятия блокировки процесса). Если процесс выполняется, то сигнал считается доставленным и никаких обновлений не требуется).
8 11. Гарантированная доставка сигнала от триггера до процесса (сигнал не будет потерян) и процесс будет пробужден и продолжит выполнение (Синхронизация проверки условия Wakeup condition, гарантия что сигнал не будет утерян).
9 11. Конкуренция между триггерами и процессом.
Alexandr Fokin 3.4 10
Alexandr Fokin 7.7 11
12 Решает 2 задачи:
13 1) Информация о выполнении процесса считывается из Wakeup state (без взятия блокировки процесса). Если процесс выполняется, то сигнал считается доставленным и никаких обновлений не требуется.
14 2) Синхронизация проверки условия Wakeup condition, гарантия что сигнал не будет утерян.
15 В конце сессии обработки процесса Wakeup state блокируется и только после этого проверяется условие наличие новых сигналов Wakeup condition, это гарантирует что ни один поступивший сигнал не будет утерян.
16
17 Такой подход позволяет минимизировать ожидание на блокировках.
18 )))
19 |С|(% style="width:791px" %)[[image:Конкурентная доставка сигнала в процесс.Sequence.png]]
20 |(% style="width:183px" %) |(% style="width:955px" %)
21 |(% style="width:183px" %) |(% style="width:955px" %)
22
Alexandr Fokin 3.4 23
24 )))
Alexandr Fokin 3.2 25 |(% style="width:196px" %) |(% style="width:1286px" %)
26
27