依赖图与任务调度
Dependency Graph & Task Scheduling
基于 DAG 的任务依赖管理,支持拓扑排序、循环检测和并行度分析
子问题
1.依赖关系建模
2.拓扑排序算法
3.循环依赖检测
4.并行度分析
5.外部依赖解析(跨项目依赖通过 routing 系统解析)
6.依赖图可视化(ASCII/DOT/HTML 三种格式)
7.child→parent 反模式检测(防止层级死锁)
各项目的解法1 solutions
Signals
横向对比
| 维度 | beads |
|---|---|
| 依赖关系建模 | 单表多类型(10+ 种依赖类型通过 type 字段区分) |
| 拓扑排序算法 | longest path 迭代收敛(确保最优层级) |
| 循环依赖检测 | SQL 递归 CTE 早期检测(添加时阻止) |
| 并行度分析 | wave 分层(同层任务可并行执行) |
| 可视化支持 | ASCII/DOT/HTML 三种格式(含 D3.js 交互式) |
| 外部依赖支持 | external: 前缀跨项目依赖(routing 解析) |
最佳实践
1.支持多种关系类型(blocks/relates_to/duplicates)
2.wave 分析计算可并行任务
3.循环依赖早期检测
4.依赖图可视化
5.SQL 递归 CTE 深度限制(防止无限递归)
6.blocked IDs 缓存(避免重复计算)
7.longest path 算法(确保最优层级分配)
8.依赖类型分离(只对 blocks 类型检测循环)