Исходный код вики Модуль schema

Версия 2.17 от Alexandr Fokin на 2026/07/02 17:31

Скрыть последних авторов
Alexandr Fokin 1.3 1 |(% style="width:98px" %)Ветка|(% style="width:1383px" %)cccc1808/experiment/process_schema
Alexandr Fokin 1.2 2 cccc1808/experiment/process_schema_diagramm
Alexandr Fokin 1.3 3 |(% style="width:98px" %)Описание|(% style="width:1383px" %)Более высокоуровневый модуль, вводящий описание и выполнение процесса на основе схемы.
Alexandr Fokin 2.17 4 Модуль управляет статусом асинхронного выполнения процесса на основе состояния действий токена.
Alexandr Fokin 1.2 5 Модуль также позволяет взаимодействовать совместно с системой триггеров.
Alexandr Fokin 1.4 6 Процесс содержит указатель на текущий исполняемый токен (действия этого токена выполняются).
Alexandr Fokin 1.3 7 |(% style="width:98px" %)Элементы|(% style="width:1383px" %)(((
Alexandr Fokin 1.4 8 |(% style="width:131px" %)Схема|(% style="width:1234px" %)Содержит набор токенов.
Alexandr Fokin 1.3 9 Экземпляр схемы привязан к идентификатору типа процесса (ProcessType, ProcessVersion).
Alexandr Fokin 2.4 10 Модуль валидации содержит ряд проверок корректности схемы и зарегистрированных хендлеров.
Alexandr Fokin 1.6 11 |(% style="width:131px" %)Токен|(% style="width:1234px" %)(((
12 * Содержит набор действий.
13 * Содержит состояние.
14 * В момент выполнения токена, последовательно выполняются его активные действия (вызываются хендлеры действий).
15 )))
Alexandr Fokin 1.4 16 |(% style="width:131px" %)Действие токена|(% style="width:1234px" %)(((
17 * Содержит внутреннюю малую статусную модель (в зависимости от типа действия).
Alexandr Fokin 1.8 18 * Содержит флаг - должно ли действий запускать сразу при переходе на токен (или оно будет активировано другим действием в процессе выполнения токена).
Alexandr Fokin 1.4 19 * Может содержать переход на другой токен (Срабатывает при завершении действия).
Alexandr Fokin 1.3 20 * Может активировать другие действия (срабатывает после вызова функции хендлера обработчика).
Alexandr Fokin 1.2 21
Alexandr Fokin 1.3 22 |(% style="width:116px" %)ServiceTask|(% style="width:1067px" %)(((
23 * Содержит ключ хендлера обработчик.
Alexandr Fokin 2.3 24 * Может использоваться для длительных действий (soft timeout - разбиение выполнения на несколько транзакций).
Alexandr Fokin 1.1 25 )))
Alexandr Fokin 1.3 26 |(% style="width:116px" %)ConditionAction|(% style="width:1067px" %)(((
27 * Содержит ключ хендлера проверки условия.
28 * Содержит необязательный ключ хендлера обработчик (выполняется при выполнении условия).
Alexandr Fokin 1.2 29 )))
Alexandr Fokin 1.3 30 |(% style="width:116px" %)TimerAction|(% style="width:1067px" %)(((
31 * В начале выполнения создает TimerTrigger (для поступления сигнала на процесс) и сохраняет временную отметку.
32 * Проверяет временную отметку для обнаружения срабатывания таймера.
33 * Содержит необязательный ключ хендлера обработчик (выполняется при срабатывании таймера).
34 )))
35 )))
36 )))
37 |(% style="width:98px" %)Пример диаграммы процесса|(% style="width:1383px" %)(((
Alexandr Fokin 1.7 38 |(((
39 * Реализована преобразование схемы в mermaid class diagram.
Alexandr Fokin 1.3 40 Поддерживает экспорт (схема -> диаграмма) и импорт (диаграмма схема).
Alexandr Fokin 1.7 41 * Позволяет работать с графическим представлением схемы процесса (обсуждать и изменять элементы процесса (алгоритмы хендлеров, переходы между токенами)).
42 )))
Alexandr Fokin 1.2 43 |На изображении представлен пример тестового процесса, который содержит 1 токен, который содержит 3 блока действий.
44 Токен выполняет функцию отправки сообщения с ожиданиям ответа, в случае отсутствия ответа в течении промежутка времени запрос посылается повторно.
Alexandr Fokin 1.5 45 Схема позволяет указывать имена элементов и комментарии к ним (в примере приведен алгоритм в реализации хендлера действия).
Alexandr Fokin 2.2 46 |[[image:Тестовый процесс.1.png]]
Alexandr Fokin 1.1 47 )))