Изменения документа Движок cccc1808. ProcessEngine

Редактировал(а) Alexandr Fokin 2026/04/27 13:28

От версии 27.16
отредактировано Alexandr Fokin
на 2026/04/18 17:49
Изменить комментарий: К данной версии нет комментариев
К версии 27.12
отредактировано Alexandr Fokin
на 2026/04/11 01:41
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -1,12 +1,11 @@
1 -|(% style="width:132px" %) |(% style="width:1301px" %)(((
2 -|Теги поиска|cccc1808. ProcessEngine, cccc1808.ProcessEngine, Process engine
1 +|(% style="width:132px" %)Теги поиска|(% style="width:1301px" %)(((
2 +cccc1808. ProcessEngine, cccc1808.ProcessEngine
3 3  Очередь задач, Система обработки процессов, Движок обработки процессов.
4 4  [[Процесс>>doc:Архитектура и модели.Модели.Процесс.WebHome]]
5 -|Описание|Универсальный движок для выполнения процессов и очередей задач, позволяющий комбинировать несколько подходов к обработке (см особенности).
6 -|Термины|Процесс является единицей исполнения. В реализации может содержать машину состояний.
7 -Система триггеров используется для таймеров и передачи сигналов для процессов (с оптимизацией нагрузки).
8 -|Репозиторий|[[https:~~/~~/github.com/cccc1808/cccc1808.ProcessEngine>>https://github.com/cccc1808/cccc1808.ProcessEngine]]
9 9  )))
6 +|(% style="width:132px" %) |(% style="width:1301px" %)Универсальный движок для выполнения процессов и очередей задач, позволяющий комбинировать несколько подходов к обработке (см особенности).
7 +|(% style="width:132px" %) |(% style="width:1301px" %)Процесс является единицей исполнения. В реализации может содержать машину состояний.
8 +Система триггеров используется для таймеров и передачи сигналов для процессов (с оптимизацией нагрузки).
10 10  |(% style="width:132px" %)Разветывание|(% style="width:1301px" %)(((
11 11  |(% style="width:150px" %)База данных|(% style="width:1177px" %)(((
12 12  Для надежного хранения данных процессов и триггеров.
... ... @@ -19,13 +19,13 @@
19 19  * Транзакции: транзакции.
20 20  * Транзакции: savepoint.
21 21  (если используются, можно обрабатывать каждый шаг отдельной транзакцией или весь процесс без savepoint изоляции ошибок между шагами).
22 -* [[Блокировки>>doc:Разработка.Базы данных.SQL.Механизмы.Транзакции и блокировки.WebHome]]: updatelock.
23 -* [[Блокировки>>doc:Разработка.Базы данных.SQL.Механизмы.Транзакции и блокировки.WebHome]]: updatelock skip locked.
21 +* Блокировка: updatelock.
22 +* Блокировка: updatelock skip locked.
24 24  (частично можно обойтись без него).
25 -* [[Блокировки>>doc:Разработка.Базы данных.SQL.Механизмы.Транзакции и блокировки.WebHome]]: sharelock
24 +* Блокировка: sharelock
26 26  (можно обойтись без него без сильного влияния)
27 -* [[Уровни изоляции>>doc:Разработка.Базы данных.SQL.Механизмы.Транзакции и блокировки.Уровни изоляции | Isolation levels.WebHome]]: работает на read committed, то что нужно блокируется руками.
28 -* Для некоторых кейсов желательно возможность выполнить [[Upsert>>doc:Разработка.Базы данных.SQL.Сценарии и вопросы.Insert or update\. Upsert.WebHome]] (insert on conflict).
26 +* Уровень изоляции: работает на read committed, то что нужно блокируется руками.
27 +* Для некоторых кейсов желательно возможность выполнить upsert (insert on conflict).
29 29  )))
30 30  |(% style="width:150px" %)Брокер сообщений|(% style="width:1177px" %)(((
31 31  Используется для накопления и доставки TriggerEvent.
... ... @@ -36,8 +36,8 @@
36 36  )))
37 37  )))
38 38  |(% style="width:132px" %)Особенности|(% style="width:1301px" %)(((
39 -|(% style="width:159px" %)Пакетные транзакции (батчинг).|(% style="width:1168px" %)(((
40 -Возможность использовать и комбинировать типы выполнения для разных типов процессов:
38 +|(% style="width:159px" %)Батчинг при выполнении.|(% style="width:1168px" %)(((
39 +Возможность использовать и комбинировать разные типы выполнения как
41 41  
42 42  * (1 транзакция - 1 процесс),
43 43  * (1 транзакция - N процессов).
... ... @@ -61,7 +61,6 @@
61 61  См. пример 2.
62 62  )))
63 63  |(% style="width:159px" %)Перехват ошибок|(% style="width:1168px" %)Перехват и обработка ошибок, если процесс выкинул exception в движок. Реализацию простого retry с задержкой (создается триггер на следующую попытку).
64 -В случае пакетной транзакции движок не знает какой конкретно из процессов породил ошибку (если она не перехвачена вручную), то ошибка выставляется на все незавершенные процессы.
65 65  |(% style="width:159px" %)Параллельное выполнение|(% style="width:1168px" %)Допускается запуск нескольких раннеров (на разных нодах), работающих с одной таблицей процессов для распределения нагрузки между ними.
66 66  Допускается фильтрация типов процессов между нодами (чтобы нода выполняла только определенные типы процессов, в том числе по приоритету).
67 67  Доступно для раннеров процессов и триггеров.