Модуль schema

Версия 2.20 от Alexandr Fokin на 2026/07/08 12:21

Веткаcccc1808/experiment/process_schema
cccc1808/experiment/process_schema_diagramm
ОписаниеБолее высокоуровневый модуль, вводящий описание и выполнение процесса на основе схемы.
Модуль управляет статусом асинхронного выполнения процесса на основе состояния действий токена.
Модуль также позволяет взаимодействовать совместно с системой триггеров.
Процесс содержит указатель на текущий исполняемый токен (действия этого токена выполняются).
Элементы
СхемаСодержит набор токенов.
Экземпляр схемы привязан к идентификатору типа процесса (ProcessType, ProcessVersion).
Модуль валидации содержит ряд проверок корректности схемы и зарегистрированных хендлеров.
Токен
  • Содержит набор действий.
  • Содержит состояние.
  • В момент выполнения токена, последовательно выполняются его активные действия (вызываются хендлеры действий).
Действие токена
  • Содержит внутреннюю малую статусную модель (в зависимости от типа действия).
  • Содержит флаг - должно ли действий запускать сразу при переходе на токен (или оно будет активировано другим действием в процессе выполнения токена).
  • Может содержать переход на другой токен (Срабатывает при завершении действия).
  • Может активировать другие действия (срабатывает после вызова функции хендлера обработчика).
ServiceTask
  • Содержит ключ хендлера обработчик.
  • Может использоваться для длительных действий (soft timeout - разбиение выполнения на несколько транзакций).
ConditionAction
  • Содержит ключ хендлера проверки условия.
  • Содержит необязательный ключ хендлера обработчик (выполняется при выполнении условия).
TimerAction
  • В начале выполнения создает TimerTrigger (для поступления сигнала на процесс) и сохраняет временную отметку.
  • Проверяет временную отметку для обнаружения срабатывания таймера.
  • Содержит необязательный ключ хендлера обработчик (выполняется при срабатывании таймера).
Пример диаграммы процесса
  • Реализована преобразование схемы в mermaid class diagram.
    Поддерживает экспорт (схема -> диаграмма) и импорт (диаграмма схема).
  • Позволяет работать с графическим представлением схемы процесса (обсуждать и изменять элементы процесса (алгоритмы хендлеров, переходы между токенами)).
  • cccc1808/experiment/process_schema_diagramm
На изображении представлен пример тестового процесса, который содержит 1 токен, который содержит 3 блока действий.
Токен выполняет функцию отправки сообщения с ожиданиям ответа, в случае отсутствия ответа в течении промежутка времени запрос посылается повторно.
Схема позволяет указывать имена элементов и комментарии к ним (в примере приведен алгоритм в реализации хендлера действия).
Тестовый процесс.1.png