运行模式

运行模式

DeskFlux 工作流引擎提供两种核心运行模式,以适应不同场景下的执行需求。用户可根据工作流的复杂度、节点依赖关系以及对执行效率的要求,选择合适的模式。

模式概览

模式 执行方式 错误处理 适用场景 核心优势
顺序执行 严格按节点定义顺序,单线程从上至下。 遇错即停,中断整个工作流。 流程简单、节点间存在强依赖、需严格保证执行顺序。 逻辑清晰,易于调试和追踪。
智能并行 引擎智能分析依赖,对可并行节点启用多线程执行。 可配置为跳过错误节点继续执行后续独立任务。 流程复杂、包含大量独立或耗时任务、追求极致执行效率。 大幅缩短整体运行时间,充分利用系统。

模式详解

1. 顺序执行

此为默认执行模式。引擎将工作流视为一个线性序列,严格按照节点在画布上的排列顺序(通常为从上至下)依次执行。当前一节点成功完成后,才会触发下一节点的执行。

核心逻辑流程如下:

flowchart TD
    Start["🚀 开始执行工作流"] --> A
    
    subgraph SG1 ["📋 顺序执行引擎"]
        direction TB
        A["📌 读取第一个节点"]
        A --> B{"⚡ 执行当前节点"}
        B -->|"✅ 成功"| C["➡️ 推进至下一个节点"]
        C --> D{"🏁 是否最后一个节点?"}
        D -->|"❌ 否"| B
        D -->|"✅ 是"| E["🎉 流程结束"]
        B -->|"❌ 失败/报错"| F["🛑 立即停止工作流<br>并抛出错误"]
    end
    
    F --> G["📄 输出错误报告"]
    E --> H["✅ 输出执行成功报告"]
    
    G --> I["📊 记录至执行历史"]
    H --> I
    
    I --> J["🏁 工作流终止"]

    style Start fill:#e8f5e9,stroke:#43a047,stroke-width:2px
    style SG1 fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#0d47a1
    style A fill:#bbdefb,stroke:#1976d2,stroke-width:1.5px
    style B fill:#fff8e1,stroke:#f57c00,stroke-width:2px,color:#e65100
    style C fill:#e1bee7,stroke:#8e24aa,stroke-width:1.5px
    style D fill:#fff8e1,stroke:#f57c00,stroke-width:2px
    style E fill:#c8e6c9,stroke:#43a047,stroke-width:2px
    style F fill:#ffcdd2,stroke:#e53935,stroke-width:2px,color:#b71c1c
    style G fill:#ffebee,stroke:#e53935,stroke-width:1.5px
    style H fill:#e8f5e9,stroke:#43a047,stroke-width:1.5px
    style I fill:#e0e0e0,stroke:#757575,stroke-width:1.5px
    style J fill:#9e9e9e,stroke:#616161,stroke-width:2px,color:#ffffff

特点总结:

  • 强顺序性**:执行路径唯一且确定。
  • 简单可靠:易于理解、构建和问题定位。
  • 资源保守:单线程运行,占用系统资源较少。

2. 智能并行

在此模式下,执行引擎会在运行前对工作流进行静态分析,构建节点依赖关系图。无依赖关系的节点将被调度至不同的线程中同时执行,从而显著提升整体效率。

并行分析及执行流程:

flowchart TD
    Start["🚀 开始执行工作流"] --> A["📋 解析工作流所有节点"]
    
    subgraph SG1 ["🧠 智能分析阶段"]
        direction LR
        A --> B["🔗 构建节点依赖关系图"]
        B --> C["🔍 识别可并行执行的节点组"]
    end
    
    C --> D["📤 将节点组提交至线程池"]
    
    subgraph SG2 ["⚡ 多线程调度执行"]
        direction TB
        D --> E{"🔄 并发执行<br>所有可并行节点"}
        E --> F{"📊 节点执行状态"}
        F -->|"✅ 全部成功"| G["▶️ 触发后续依赖节点"]
        F -->|"❌ 存在失败"| H["⚠️ 根据用户配置决定<br>(继续或停止)"]
    end
    
    G --> I{"🏁 是否为最终节点?"}
    I -->|"❌ 否"| D
    I -->|"✅ 是"| J["🎉 流程结束"]
    H --> J

    style Start fill:#e8f5e9,stroke:#43a047,stroke-width:2px
    style SG1 fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
    style SG2 fill:#fff3e0,stroke:#f57c00,stroke-width:2px
    style J fill:#c8e6c9,stroke:#388e3c,stroke-width:2px
    style F fill:#fff8e1,stroke:#f57c00,stroke-width:2px
    style I fill:#fff8e1,stroke:#f57c00,stroke-width:2px
    style H fill:#ffebee,stroke:#e53935,stroke-width:2px

关键机制:

  1. 依赖分析:引擎自动识别节点间的数据输入输出关系,确定执行顺序。
  2. 线程池管理:动态管理并发线程数量,避免过度消耗系统资源。
  3. 灵活容错:用户可在工作流或节点级别配置遇到错误时的行为(如停止、跳过、重试)。

模式选择建议

考量因素 推荐选择顺序执行 推荐选择智能并行
工作流结构 线性、步骤简单 分支多、存在独立块
执行目标 稳定性、可预测性 执行速度、吞吐量
资源环境 CPU/内存资源有限 多核CPU,资源充足
调试需求 高,需逐步跟踪 低,或已有完善日志

配置与切换

工作流的运行模式可在其 “工作流配置” 面板中进行设置:

  1. 工作流编辑页面中
  2. “运行模式” 下拉菜单中选择 “顺序执行”“智能并行”

提示:对于初次创建或调试阶段的工作流,建议先使用 “顺序执行” 模式确保逻辑正确,再切换至 “智能并行” 模式进行性能优化。