Изменения документа Примеры
Редактировал(а) Alexandr Fokin 2026/08/26 19:05
От версии 8.52
отредактировано Alexandr Fokin
на 2026/08/26 19:05
на 2026/08/26 19:05
Изменить комментарий:
Удаленный объект
К версии 8.50
отредактировано Alexandr Fokin
на 2026/08/23 15:26
на 2026/08/23 15:26
Изменить комментарий:
К данной версии нет комментариев
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
-
Объекты (0 изменено, 1 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -99,8 +99,33 @@ 99 99 ))) 100 100 ))) 101 101 ))) 102 -|2|(% style="width:188px" %)Transaction outbox stream process.|(% style="width:1268px" %)Смотри stream trigger. 103 -|-|(% style="width:188px" %) |(% style="width:1268px" %) 102 +|2|(% style="width:188px" %)Transaction outbox stream process.|(% style="width:1268px" %)[[image:TransactionOutbox. Sequence.jpg]] 103 +|3|(% style="width:188px" %)Stream trigger|(% style="width:1268px" %)((( 104 +| |((( 105 +* Позволяет убрать лишние запросы пробуждения процесса (когда он и так запущен). 106 +* __Позволяет полностью убрать задержку после остановки процесса__ (если есть новое сообщения, то он сразу же будет пробужден). 107 +За счет того, что триггер точно знает, что есть новые сообщения и процесс только что уснул. 108 +* Вводит 2 типа события, 1 сигнал о новом сообщении (содержит offset значение), 2 - процесс идет спать (содержит offset значение). 109 +* Вводит дополнительное состояние в триггер: максимальный offset сообщения, максимальный offset обработанного процессом сообщения, флаг состояния сна процесса. 110 +* В некоторых случаях позволяет не выполнять wakeup код в конце сессии обработки (если отключить wakeup, оставить только stream trigger) 111 +(блокировка и обновление wakeup entity, проверка wakeup условия), __улучшает перформанс такта работы__. 112 +))) 113 +|Алгоритм триггера.|((( 114 +* При получении события о засыпании процесса: 115 +Фиксирует смещение процесса обработки и сравнивает со смещением сообщения. 116 +Если все сообщения обработаны, то не пробуждает процесс, иначе пробуждает процесс. 117 +* При получении события о новом сообщении: 118 +Фиксирует новое наибольшее смещение. 119 +Если процесс не спит (по флагу в триггере), то ничего не делает. 120 +Если процесс спит (по флагу), то пробуждает процесс. 121 + 122 +Отслеживает смещение обработки процесса и последнего события. 123 +Ожидает от процесса события о том, что он все обработал, его последнее смещение и он идет спать. 124 +Если есть сообщения со смещением больше чем указал процесс, то делает гарантированное пробуждение процесса. 125 +Когда поступает сигнал о новом сообщении (от отправителя сообщения), то обновляет данные о максимальном смещении и пробуждает процесс, если он спит 126 +))) 127 +|Заготовка|[[https:~~/~~/github.com/cccc1808/cccc1808.ProcessEngine/tree/cccc1808/feature/trigger_stream_trigger>>https://github.com/cccc1808/cccc1808.ProcessEngine/tree/cccc1808/feature/trigger_stream_trigger]] 128 +))) 104 104 |4|(% style="width:188px" %)Групповое действие|(% style="width:1268px" %)((( 105 105 | |Действие, которое нужно применить к диапазону строк (сравнительно большому), независимо для каждой строки. 106 106 Наличие у строк упорядоченного столбца (для выделения диапазонов).
- XWiki.XWikiComments[0]
-
- Автор
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.cccc1808 - Комментарий
-
... ... @@ -1,0 +1,4 @@ 1 +Замечание: конфигурация задержки trigger consumer вычитывания и накопления батча trigger events. 2 + 3 +* Для примера 1 предпочтительная более большая задержка т.к. это уменьшит нагрузку на БД (агрегирует больше сигналов от дочерних процессов в одну операцию обновления). Throughput. 4 +* Для примера 3 в контексте inbox stream trigger, может быть предпочтительная более низкая задержка, чтобы не раздувать задержку от поступления сообщения до его обработки. Latency. - Дата
-
... ... @@ -1,0 +1,1 @@ 1 +2026-05-01 15:36:23.922