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

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

От версии 28.1
отредактировано Alexandr Fokin
на 2026/04/27 13:24
Изменить комментарий: Вложение перемещено в xwiki:Проекты и репозитории.Библиотеки.Движок cccc1808\. ProcessEngine.Примеры.WebHome.
К версии 27.13
отредактировано Alexandr Fokin
на 2026/04/12 11:42
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -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  Для надежного хранения данных процессов и триггеров.
... ... @@ -16,15 +16,13 @@
16 16  
17 17  Для текущей реализации в качестве хранилище может выступать БД, поддерживающая:
18 18  
19 -* Транзакции:
20 -** Транзакции.
21 -** Savepoint.
18 +* Транзакции: транзакции.
19 +* Транзакции: savepoint.
22 22  (если используются, можно обрабатывать каждый шаг отдельной транзакцией или весь процесс без savepoint изоляции ошибок между шагами).
23 -* [[Блокировки>>doc:Разработка.Базы данных.SQL.Механизмы.Транзакции и блокировки.WebHome]]:
24 -** updatelock.
25 -** updatelock skip locked.
21 +* [[Блокировки>>doc:Разработка.Базы данных.SQL.Механизмы.Транзакции и блокировки.WebHome]]: updatelock.
22 +* [[Блокировки>>doc:Разработка.Базы данных.SQL.Механизмы.Транзакции и блокировки.WebHome]]: updatelock skip locked.
26 26  (частично можно обойтись без него).
27 -** sharelock
24 +* [[Блокировки>>doc:Разработка.Базы данных.SQL.Механизмы.Транзакции и блокировки.WebHome]]: sharelock
28 28  (можно обойтись без него без сильного влияния)
29 29  * [[Уровни изоляции>>doc:Разработка.Базы данных.SQL.Механизмы.Транзакции и блокировки.Уровни изоляции | Isolation levels.WebHome]]: работает на read committed, то что нужно блокируется руками.
30 30  * Для некоторых кейсов желательно возможность выполнить [[Upsert>>doc:Разработка.Базы данных.SQL.Сценарии и вопросы.Insert or update\. Upsert.WebHome]] (insert on conflict).
... ... @@ -38,8 +38,8 @@
38 38  )))
39 39  )))
40 40  |(% style="width:132px" %)Особенности|(% style="width:1301px" %)(((
41 -|(% style="width:159px" %)Пакетные транзакции (батчинг).|(% style="width:1168px" %)(((
42 -Возможность использовать и комбинировать типы выполнения для разных типов процессов:
38 +|(% style="width:159px" %)Батчинг при выполнении.|(% style="width:1168px" %)(((
39 +Возможность использовать и комбинировать разные типы выполнения как
43 43  
44 44  * (1 транзакция - 1 процесс),
45 45  * (1 транзакция - N процессов).
... ... @@ -63,7 +63,6 @@
63 63  См. пример 2.
64 64  )))
65 65  |(% style="width:159px" %)Перехват ошибок|(% style="width:1168px" %)Перехват и обработка ошибок, если процесс выкинул exception в движок. Реализацию простого retry с задержкой (создается триггер на следующую попытку).
66 -В случае пакетной транзакции движок не знает какой конкретно из процессов породил ошибку (если она не перехвачена вручную), то ошибка выставляется на все незавершенные процессы.
67 67  |(% style="width:159px" %)Параллельное выполнение|(% style="width:1168px" %)Допускается запуск нескольких раннеров (на разных нодах), работающих с одной таблицей процессов для распределения нагрузки между ними.
68 68  Допускается фильтрация типов процессов между нодами (чтобы нода выполняла только определенные типы процессов, в том числе по приоритету).
69 69  Доступно для раннеров процессов и триггеров.
TransactionOutbox. Sequence.graphml
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.cccc1808
Размер
... ... @@ -1,0 +1,1 @@
1 +33.6 KB
Содержимое