定时任务的字段级参考:cron 表达式语法、保存位置、运行限制与自动过期规则
定时任务让 Qoder CLI 在指定时间自动触发一段提示或斜杠命令。本页说明 cron 表达式格式、保存位置与运行限制。关于定时任务的使用指南,见 定时执行任务。
定时任务使用标准 5 字段 cron 表达式,按运行 CLI 的本地时区解释:
支持的字段语法:
持久化的定时任务保存在项目下的
任务字段:
cron 表达式格式
定时任务使用标准 5 字段 cron 表达式,按运行 CLI 的本地时区解释:
| 语法 | 含义 | 示例 |
|---|---|---|
* | 通配符,匹配全部 | * * * * *(每分钟) |
N | 单个值 | 0 9 * * *(每天 9:00) |
*/N | 步长,每隔 N 个单位 | */15 * * * *(每 15 分钟) |
N-M | 范围 | 0 9-17 * * *(9 点到 17 点整点) |
N,M,... | 列表 | 0 9,12,18 * * *(每天 9/12/18 点) |
不支持常见示例:L、W、?及名称别名。当日与周几同时被限定时,采用“或”语义——任一匹配即触发(标准 cron 行为)。
| 表达式 | 含义 |
|---|---|
*/10 * * * * | 每 10 分钟 |
0 * * * * | 每小时整点 |
0 9 * * * | 每天 9:00 |
0 9 * * 1-5 | 工作日 9:00 |
0 0 */2 * * | 每隔 2 天的 0:00 |
保存位置
持久化的定时任务保存在项目下的 .qoder/scheduled_tasks.json。文件格式:
| 字段 | 说明 |
|---|---|
id | 8 位十六进制的任务标识。 |
cron | 5 字段 cron 表达式。 |
prompt | 触发时排入的提示文本或斜杠命令。 |
createdAt | 创建时间戳(毫秒)。 |
lastFiredAt | 上次触发时间戳(毫秒,循环任务写回)。 |
recurring | 是否为循环任务。 |
任务类型
- 一次性任务(
recurring为 false 或缺省):触发一次后自动删除。 - 循环任务(
recurring: true):按周期重复触发,从当前时间重新排期,直到显式删除或自动过期。
运行限制与过期
- 任务数量上限:最多 50 个任务,达到上限后需先删除已有任务才能创建新任务。
- 自动过期:循环任务在创建后 7 天自动过期清理(一次性任务触发后即删除)。
- 抖动调度:为避免多个会话在同一时刻集中触发,调度器会加入确定性的抖动延迟——循环任务最多向后延迟其间隔的 10%(上限 15 分钟);一次性任务在对齐到 30 分钟边界时最多提前 90 秒触发。抖动基于任务 ID 计算,跨重启稳定。
- 错过的任务:若某任务的下次计划运行时间已在过去(进程未运行期间错过),会在启动时提示。
- 单进程驱动:同一项目目录由文件锁保证只有一个进程驱动调度,避免重复触发。
创建与删除
- 通过 Agent 的定时任务工具创建、列出、删除任务(在对话中用自然语言请求即可)。
- 通过
/loop可快捷创建循环任务,见 Loop 命令参考。 - 循环任务可在 7 天自动过期前手动删除。