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
任务超时异常