Изменения документа Движок cccc1808. ProcessEngine
Редактировал(а) Alexandr Fokin 2026/04/27 13:28
От версии 1.18
отредактировано Alexandr Fokin
на 2026/04/10 14:57
на 2026/04/10 14:57
Изменить комментарий:
К данной версии нет комментариев
К версии 1.12
отредактировано Alexandr Fokin
на 2026/04/10 14:38
на 2026/04/10 14:38
Изменить комментарий:
К данной версии нет комментариев
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -6,29 +6,6 @@ 6 6 |(% style="width:132px" %) |(% style="width:1301px" %)Универсальный движок для выполнения процессов и очередей задач, позволяющий комбинировать несколько подходов к обработке (см особенности). 7 7 |(% style="width:132px" %) |(% style="width:1301px" %)Процесс является единицей выполнения. 8 8 Система триггеров используется для таймеров и передачи сигналов для процессов (с оптимизацией нагрузки). 9 -|(% style="width:132px" %)Разветывание|(% style="width:1301px" %)((( 10 -|(% style="width:150px" %)База данных|(% style="width:1177px" %)((( 11 -Для надежного хранения данных процессов и триггеров. 12 - 13 -* Сейчас есть реализация под EntityFramework. 14 -* Но модель позволяет сделать реализацию под другие решения (LinqToDb или чистый Ado.Net). 15 - 16 - 17 - 18 -Для текущей реализации в качестве хранилище может выступать БД, поддерживающая: 19 - 20 -* транзакции 21 -* savepoint (если используются) 22 -* updatelock 23 -* updatelock skip locked 24 -* sharelock (можно обойтись без него) 25 -))) 26 -|(% style="width:150px" %)Брокер сообщений|(% style="width:1177px" %)((( 27 -Используется для накопления и доставки TriggerEvent. 28 - 29 -* Сейчас есть реализация под [[Apache Kafka>>doc:Разработка.Брокеры сообщений.Apache Kafka.WebHome]] 30 -))) 31 -))) 32 32 |(% style="width:132px" %)Особенности|(% style="width:1301px" %)((( 33 33 |(% style="width:159px" %)Батчинг|(% style="width:1168px" %)((( 34 34 Возможность использовать и комбинировать разные типы выполнения как ... ... @@ -40,7 +40,7 @@ 40 40 * Изоляция через db savepoint. 41 41 * Для [[EntityFramework ~| EntityFrameworkCore>>doc:Разработка.NET.Работа с БД.EntityFramework | EntityFrameworkCore.WebHome]] возможность делать InMemory снимок [[Создание снимка ChangeTracker>>doc:Разработка.NET.Работа с БД.EntityFramework | EntityFrameworkCore.Сценарии и проблемы.Создание снимка ChangeTracker.WebHome]]. 42 42 ))) 43 -|(% style="width:159px" %) |(% style="width:1168px" %)((( 20 +|(% style="width:159px" %)БД провайдер|(% style="width:1168px" %)((( 44 44 * Сейчас есть реализация под EntityFramework. 45 45 * Но модель позволяет сделать реализацию под другие решения (LinqToDb или чистый Ado.Net). 46 46 ... ... @@ -54,7 +54,7 @@ 54 54 ))) 55 55 |(% style="width:159px" %)Передача сигналов для процессов через систему триггеров.|(% style="width:1168px" %)((( 56 56 В том числе для передачи сигналов реализована система триггеров. 57 -Она позволяет оптимизировать операции с БД и уменьшить конкуренцию между процессами за общее состояние (родительский процесс).34 +Она позволяет оптимизировать операции с БД. 58 58 59 59 см. пример 1. 60 60 ))) ... ... @@ -66,7 +66,6 @@ 66 66 \\В перспективе возможны решения с шардированием. 67 67 |(% style="width:159px" %)Soft timeout|(% style="width:1168px" %)Возможность указывать soft timeout, который будет мягко приостанавливать цикл (внутри шага процесса), чтобы ограничить общее время транзакции (не делать транзакции долгими (например горизонт postgres)). 68 68 Например родительский процесс может создать N/2 дочерних процессов за 1 сессию и N/2 за 2 сессию выполнения. 69 -|(% style="width:159px" %)Range preload process data|(% style="width:1168px" %)(Необязательно) возможность в начале сессии обработки пакетно предзагружать данные и бизнес сущности для процессов (Range query) из обрабатываемого батча для оптимизации чтения. 70 70 ))) 71 71 |(% style="width:132px" %)Примеры|(% style="width:1301px" %)((( 72 72 |(% style="width:32px" %)1|(% style="width:171px" %)Родительский процесс, N дочерних процессов.|(% style="width:1066px" %)(((