Изменения документа Примеры

Редактировал(а) Alexandr Fokin 2026/05/09 02:00

От версии 8.18
отредактировано Alexandr Fokin
на 2026/05/09 01:36
Изменить комментарий: К данной версии нет комментариев
К версии 8.21
отредактировано Alexandr Fokin
на 2026/05/09 01:59
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -48,13 +48,18 @@
48 48  
49 49  SimpleStreamTrigger + Timer (один из лучших вариантов).
50 50  
51 -* Если сигналов нет, то нет ложных срабатываний в отличие от варианта 2 (т.к. нет поступления сигнала от дочерних процессов).
52 -* Записей в БД меньше, чем от варианта 1 (счетчик нужно уменьшать, а здесь достаточно взвести флаг необработанного сигнала).
53 53  * Триггер проверяет условие завершения всех дочерних процессов (можно прикинуть количество незавершенных дочерних процессов).
54 54  ** Если все обработано, то пробуждает процесс и деактивируется.
55 -** Иначе, деактивируется (до поступления хотя бы одного сигнала), взводит признак стрима что процесс ожидает, взводит флаг новых сигналов на 0, выставляет задержку от оценки количества необработанных процессов (< N - малая задержка, иначе большая задержка).
53 +** Иначе:
54 +*** деактивируется (до поступления хотя бы одного сигнала),
55 +*** взводит признак стрима - процесс ожидает,
56 +*** взводит флаг новых сигналов на 0,
57 +*** выставляет задержку от оценки количества необработанных процессов (< N - малая задержка, иначе большая задержка).
56 56  * [Расширенный]: Дочерние процессы в блоке wakeup condition проверяют наличие незавершенных процессов.
57 57  ** Если все процессы завершены или (незавершенных процессов мало и нет процессов с ошибкой), то можно опубликовать событие на SimpleStreamTrigger на сброс или установку минимальной задержки (в дополнение к сигналу).
60 +* Читающей нагрузки будет немного больше чем в варианте 2 (чтение триггера на поступлении сигнала),
61 +но пишущей нагрузки будет меньше чем в варианте 1 (запись - только на активации новым сигналом).
62 +* Если сигналов нет, то нет пустых срабатываний в отличие от варианта 2 (т.к. нет поступления сигнала от дочерних процессов).
58 58  )))
59 59  )))
60 60  |2|(% style="width:188px" %)Transaction outbox stream process.|(% style="width:1268px" %)[[image:TransactionOutbox. Sequence.jpg]]