utils/preload/preload library
预加载管理器模块
提供统一的Riverpod Provider预加载管理功能,支持:
- 自动依赖管理
- 并发执行控制
- 进度追踪
- 错误处理和重试
- 类型安全
架构说明:
PreloadManager— Facade模式,对外API入口PreloadEngine— 核心执行引擎,封装任务执行逻辑DependencyGraph— 依赖分析器,处理拓扑排序和循环检测PreloadTracker— 进度追踪器,计算和推送进度更新PreloadSemaphore— 并发信号量,控制最大并发数
使用示例:
await PreloadManager.instance
.register(myProvider, priority: 1)
.register(
dependentProvider,
deps: [myProvider],
priority: 2,
)
.execute();
Classes
- DependencyGraph
- 依赖分析器 — 封装拓扑排序和循环依赖检测
- PreloadConfig
- 预加载全局配置
- PreloadEngine
- 预加载执行引擎 — 封装任务验证、依赖解析、执行、重试逻辑
- PreloadExecutionResult
- 预加载执行结果
- PreloadManager
- 预加载管理器 — Facade 模式,负责任务注册、状态流转、对外 API
- PreloadProgress
- 预加载进度信息
- PreloadSemaphore
- 并发控制信号量 — 实现真正的并发数限制 修复原设计中 maxConcurrentTasks 定义但从未生效的问题
-
PreloadTask<
T> - 预加载任务 — 通用任务模型
- PreloadTracker
- 进度追踪器 — 监听任务状态变更,计算并推送进度更新
- TaskConfig
- TaskExecutionContext
- 任务执行上下文 — 管理单个任务的执行状态 替代原 PreloadTask 的可变内部状态
Enums
- PreloadManagerState
- 预加载管理器整体状态
- PreloadResult
- 预加载结果
- PreloadTaskState
- 预加载状态枚举
Exceptions / Errors
- CircularDependencyException
- 循环依赖异常
- PreloadConfigException
- 配置异常
- PreloadException
- 预加载相关异常
- PreloadTaskFailedException
- 任务失败异常
- PreloadTimeoutException
- 任务超时异常