调度器总览
soulsoft_scheduler是一套面向仓颉应用的定时任务调度能力,当前重点覆盖单机调度、Cron/间隔触发、任务监听,以及与 Host / DI 的集成。
适用场景
- 需要在应用内执行定时清理、报表生成、同步、巡检等后台任务
- 想用 Cron 或固定间隔调度一个
IJob - 希望任务能和依赖注入、宿主生命周期一起工作
核心问题
当前公开代码可以概括成两层:
| 层级 | 包 | 作用 |
|---|---|---|
| 核心调度库 | soulsoft_scheduler | 提供 IScheduler、IJob、JobBuilder、CronExpr 等核心能力 |
| 集成包 | 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 启动时自动启动调度器推荐阅读顺序
当前文档边界
这组文档只覆盖当前源码和 README 已公开的稳定能力:
- 单机任务调度
- Cron 与固定间隔触发
- 任务数据、标识、监听器
- 与 Host / DI 的集成
暂不把“分布式协调”单列成现有能力页,因为当前公开源码和文档里没有足够稳定的对外 API 可以支撑那一页。
与其他模块组合
- 和 通用主机 组合时,可以把调度器纳入应用生命周期
- 和
SqlSharp组合时,任务里可以执行定时数据清理、归档、同步 - 在后续项目文档里,适合承载报表生成、定时发布、缓存预热等场景
相关专题
- 如果你还没看过宿主生命周期,先补 通用主机
- 如果你的任务要访问数据库,再配合看 SqlSharp 总览
- 如果你想看调度器在真实内容项目里应该怎样接入,再看 Blog 实战里的调度扩展