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

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

От версии 8.14
отредактировано Alexandr Fokin
на 2026/05/05 18:21
Изменить комментарий: К данной версии нет комментариев
К версии 8.8
отредактировано Alexandr Fokin
на 2026/04/29 12:46
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -22,7 +22,7 @@
22 22  |[[image:Родительский дочерний процесс. Sequence.jpg]]
23 23  )))
24 24  |(((
25 -Вариант №2:
25 озможен вариант №2:
26 26  
27 27  Мы просто ставит timerTrigger на условно 1-5-10 минут (насколько важна задержка) и перепроверяем условие завершения.
28 28  В этом случае будет
... ... @@ -30,26 +30,15 @@
30 30  * Из минус: что родительский процесс узнает о завершении дочерних процессов с задержкой (хотя в задержке можно использовать функцию от количества необработанных дочерних процессов, но тогда нужно считать количество или хотя бы что оно не больше N).
31 31  * Из плюсов: будет меньше пишущей нагрузки на БД (но больше читающей - на проверку) т.к. у нас не будет CounterTrigger, но будет периодический запрос на проверку завершения всех дочерних процессов (аналогично страхующему триггер). \
32 32  )))
33 -|(((
34 -Вариант №3:
35 -
36 -Дочерние процессы выполняются через родительский (ограничение в рамках одной ноды).
37 -Точкой выполнения является родительский процесс, который внутри себя (параллельно или последовательно) выполняет дочерние процессы.
38 -За счет такого способа у нас также отсутствует конкуренция передачи сигнала в родительский процесс.
39 -Но мы ограничены выполнением дочерних процессов одной одной сервиса.
40 -Также решает проблему, если дочерний процесс содержит ожидание (например асинхронный запрос-ответ).
41 41  )))
42 -)))
43 43  |2|(% style="width:188px" %)Transaction outbox stream process.|(% style="width:1268px" %)[[image:TransactionOutbox. Sequence.jpg]]
44 44  |3|(% style="width:188px" %)Stream trigger|(% style="width:1268px" %)(((
45 45  | |(((
46 46  * Позволяет убрать лишние запросы пробуждения процесса (когда он и так запущен).
47 -* __Позволяет полностью убрать задержку после остановки процесса__ (если есть новое сообщения, то он сразу же будет пробужден).
38 +* Позволяет полностью убрать задержку после остановки процесса (если есть новое сообщения, то он сразу же будет пробужден).
48 48  За счет того, что триггер точно знает, что есть новые сообщения и процесс только что уснул.
49 49  * Вводит 2 типа события, 1 сигнал о новом сообщении (содержит offset значение), 2 - процесс идет спать (содержит offset значение).
50 50  * Вводит дополнительное состояние в триггер: максимальный offset сообщения, максимальный offset обработанного процессом сообщения, флаг состояния сна процесса.
51 -* В некоторых случаях позволяет не выполнять wakeup код в конце сессии обработки (если отключить wakeup, оставить только stream trigger)
52 -(блокировка и обновление wakeup entity, проверка wakeup условия), __улучшает перформанс такта работы__.
53 53  )))
54 54  |Алгоритм триггера.|(((
55 55  * При получении события о засыпании процесса:
... ... @@ -65,7 +65,7 @@
65 65  Если есть сообщения со смещением больше чем указал процесс, то делает гарантированное пробуждение процесса.
66 66  Когда поступает сигнал о новом сообщении (от отправителя сообщения), то обновляет данные о максимальном смещении и пробуждает процесс, если он спит
67 67  )))
68 -|Заготовка|[[https:~~/~~/github.com/cccc1808/cccc1808.ProcessEngine/tree/cccc1808/feature/trigger_stream_trigger>>https://github.com/cccc1808/cccc1808.ProcessEngine/tree/cccc1808/feature/trigger_stream_trigger]]
57 +| |TODO:
69 69  )))
70 70  |4|(% style="width:188px" %)Групповое действие|(% style="width:1268px" %)(((
71 71  | |Действие, которое нужно применить к диапазону строк (сравнительно большому), независимо для каждой строки.
XWiki.XWikiComments[0]
Автор
... ... @@ -1,1 +1,0 @@
1 -XWiki.cccc1808
Комментарий
... ... @@ -1,4 +1,0 @@
1 -Замечание: конфигурация задержки trigger consumer вычитывания и накопления батча trigger events.
2 -
3 -* Для примера 1 предпочтительная более большая задержка т.к. это уменьшит нагрузку на БД (агрегирует больше сигналов от дочерних процессов в одну операцию обновления). Throughput.
4 -* Для примера 3 в контексте inbox stream trigger, может быть предпочтительная более низкая задержка, чтобы не раздувать задержку от поступления сообщения до его обработки. Latency.
Дата
... ... @@ -1,1 +1,0 @@
1 -2026-05-01 15:36:23.922