Skip to content

调度器总览

soulsoft_scheduler 是一套面向仓颉应用的定时任务调度能力,当前重点覆盖单机调度、Cron/间隔触发、任务监听,以及与 Host / DI 的集成。

适用场景

  • 需要在应用内执行定时清理、报表生成、同步、巡检等后台任务
  • 想用 Cron 或固定间隔调度一个 IJob
  • 希望任务能和依赖注入、宿主生命周期一起工作

核心问题

当前公开代码可以概括成两层:

层级作用
核心调度库soulsoft_scheduler提供 ISchedulerIJobJobBuilderCronExpr 等核心能力
集成包soulsoft_extensions_scheduler提供 addScheduler()addSchedulerHostedService(),接入 DI 和 Generic Host

如果只记最小模型,可以把它理解成四个角色:

  • IJob 负责定义任务逻辑
  • JobBuilder 负责定义触发器、标识和任务数据
  • IScheduler 负责管理任务和生命周期
  • SchedulerServiceBuilder 负责把调度器接到应用容器里

快速理解

最小调度流程

text
定义 IJob

JobBuilder 生成 IJobDetail

IScheduler.scheduleJob(jobDetail)

IScheduler.start()

Host 集成模式

在最小调度流程的基础上再加一层 DI 和生命周期:

text
ServiceCollection.addScheduler()

scheduleJob<T>()

addSchedulerHostedService()

Host 启动时自动启动调度器

推荐阅读顺序

  1. 快速开始
  2. 任务与触发器
  3. Cron 表达式
  4. 与 Host / DI 集成
  5. 常见问题

当前文档边界

这组文档只覆盖当前源码和 README 已公开的稳定能力:

  • 单机任务调度
  • Cron 与固定间隔触发
  • 任务数据、标识、监听器
  • 与 Host / DI 的集成

暂不把“分布式协调”单列成现有能力页,因为当前公开源码和文档里没有足够稳定的对外 API 可以支撑那一页。

与其他模块组合

  • 通用主机 组合时,可以把调度器纳入应用生命周期
  • SqlSharp 组合时,任务里可以执行定时数据清理、归档、同步
  • 在后续项目文档里,适合承载报表生成、定时发布、缓存预热等场景

相关专题