26.1 Cron 系统设计
26.1.1 Cron 服务(src/cron/service.ts)
src/cron/service.ts)类设计
// src/cron/service.ts
export class CronService {
private readonly state;
constructor(deps: CronServiceDeps) {
this.state = createCronServiceState(deps);
}
async start() { await ops.start(this.state); }
stop() { ops.stop(this.state); }
async status() { return await ops.status(this.state); }
async list(opts?: { includeDisabled?: boolean }) { ... }
async add(input: CronJobCreate) { return await ops.add(this.state, input); }
async update(id: string, patch: CronJobPatch) { ... }
async remove(id: string) { ... }
async run(id: string, mode?: "due" | "force") { ... }
wake(opts: { mode: "now" | "next-heartbeat"; text: string }) {
return ops.wakeNow(this.state, opts);
}
}依赖注入
依赖
说明
内部状态
启动流程
操作序列化
26.1.2 调度引擎(src/cron/schedule.ts)与 Croner 库
src/cron/schedule.ts)与 Croner 库三种调度类型
类型
示例
用途
computeNextRunAtMs:下次运行时间计算
computeNextRunAtMs:下次运行时间计算时区处理
定时器机制
26.1.3 Cron 表达式解析(src/cron/parse.ts)
src/cron/parse.ts)输入格式
示例
解析方式
26.1.4 Cron 规范化(src/cron/normalize.ts)
src/cron/normalize.ts)问题:LLM 输入不可靠
三层规范化
调度规范化
负载规范化
投递配置规范化
默认值策略
字段
默认值
条件
本节小结
Last updated