Уведомление об ИИ-переводе
Этот документ был переведён с помощью ИИ. Для получения точной информации обратитесь к английской версии.
Обзор системы контекстов
Система контекстов движка рабочих процессов NocoBase разделена на три уровня, соответствующих разным областям видимости. Рациональное использование позволяет реализовать гибкое совместное использование и изоляцию сервисов, конфигураций и данных, повышая удобство сопровождения и расширяемость бизнеса.
- FlowEngineContext (глобальный контекст): Глобально уникален, доступен для всех моделей и рабочих процессов, подходит для регистрации глобальных сервисов, конфигураций и т. д.
- FlowModelContext (контекст модели): Используется для совместного использования контекста внутри дерева моделей, дочерние модели автоматически делегируют контекст родитель ской модели, поддерживает переопределение имен, подходит для изоляции логики и данных на уровне модели.
- FlowRuntimeContext (контекст выполнения рабочего процесса): Создается при каждом выполнении рабочего процесса, проходит через весь цикл выполнения, подходит для передачи данных, хранения переменных, записи состояния выполнения и т. д. Поддерживает два режима
mode: 'runtime' | 'settings', соответствующих состоянию выполнения и состоянию настройки.
Все FlowEngineContext (глобальный контекст), FlowModelContext (контекст модели), FlowRuntimeContext (контекст выполнения рабочего процесса) и т. д. являются подклассами или экземплярами FlowContext.
🗂️ Схема иерархии
FlowModelContextчерез механизм делегирования (delegate) может обращаться к свойствам и методамFlowEngineContext, реализуя совместное использование глобальных возможностей.FlowModelContextдочерней модели через механизм делегирования (delegate) может обращаться к контексту родительской модели (синхронная связь), поддерживает переопределение имен.- Асинхронные родительские и дочерние модели не устанавливают отношения делегирования (delegate), чтобы избежать загрязнения состояния.
FlowRuntimeContextвсегда обращается к соответствующемуFlowModelContextчерез механизм делегирования (delegate), но не передает данные обратно вверх.

