一、CronCreate参数详解
CronCreate 是 Claude Code 中用于创建定时任务的核心工具,通过灵活的参数配置,可以满足各种定时执行需求。了解每个参数的含义和用法,是正确使用 CronCreate 的基础。
cron(必需)
Cron 表达式,定义任务的执行时间规则。格式为标准 5 字段 cron 表达式(分 时 日 月 周),例如 "*/5 * * * *" 表示每 5 分钟执行一次。
prompt(必需)
任务触发时发送给 AI 的提示词,用于指定该任务执行的具体工作内容。提示词应当清晰明确,确保任务按预期执行。
recurring(可选)
是否重复执行,默认值为 true。设为 true 时,任务会按 cron 表达式持续触发;设为 false 时,任务仅执行一次后自动删除。
durable(可选)
是否持久化跨会话,默认值为 false。设为 true 时,任务会保存到 .claude/scheduled_tasks.json 文件中,即使退出当前会话,下次启动时任务仍然有效。
二、创建一次性任务
一次性任务适用于需要在特定时间点执行一次的临时性操作。通过将 recurring 参数设为 false,CronCreate 会在任务执行一次后自动将其删除,避免产生残留任务。
典型场景:
- 延时提醒:例如"提醒我 30 分钟后检查部署状态"
- 单次报告:例如"在今天下午 2:30 生成一份项目进度摘要"
- 定时通知:例如"在明天上午 9 点提醒我参加会议"
CronCreate({
cron: "30 14 * * *",
prompt: "检查构建状态并报告结果",
recurring: false
})
提示:一次性任务创建后,CronCreate 会立即返回一个 job_id。你可以通过 CronList 确认任务是否存在,并在任务执行前使用 CronDelete 取消它。
三、创建重复任务
重复任务适用于需要按固定周期持续执行的常规性操作。由于 recurring 默认值为 true,创建重复任务时无需显式设置该参数,任务会根据 cron 表达式无限期地持续触发。
典型场景:
- 日常巡检:每天早上 9 点检查系统运行状态
- 定期报告:每个工作日生成进度报告
- 周期监控:每 15 分钟检查一次服务器可用性
CronCreate({
cron: "0 9 * * 1-5",
prompt: "生成每日项目进度报告,包含已完成任务和待办事项",
// recurring: true 为默认值,可省略
})
最佳实践:创建重复任务时,prompt 应尽量具体,明确任务的目标和输出格式。例如不仅要说明"生成报告",还要说明报告应包含哪些内容模块。
四、持久化与非持久化
CronCreate 的 durable 参数决定了任务的生命周期范围,理解持久化与非持久化的区别对于合理管理任务至关重要。
非持久化任务(durable: false,默认)
任务仅在当前会话中有效。当会话结束时,所有非持久化任务会被自动清除。适合临时性、实验性的任务,避免产生无效的残留任务占用资源。
持久化任务(durable: true)
任务会被持久化保存到项目目录下的 .claude/scheduled_tasks.json 文件中。即使退出 Claude Code 再重新进入,这些任务仍然会按计划执行。适合长期运行、需要跨会话维护的任务。
注意:持久化任务在跨会话恢复时,任务可能因系统环境变化而受到影响。建议在创建持久化任务时,确保 prompt 中不包含对特定会话上下文的依赖。
// 持久化任务示例:跨会话保持
CronCreate({
cron: "0 8 * * *",
prompt: "执行每日健康检查:检查磁盘使用率、内存占用和服务状态",
durable: true
})
五、任务ID与返回值
CronCreate 在成功创建任务后会返回一个 job_id,这个唯一标识符是后续管理任务的关键凭证。
job_id 的用途
- 取消任务:将 job_id 传递给 CronDelete 工具,可以取消正在等待或重复执行的任务
- 查询状态:通过 CronList 可以查看所有任务的列表,包含每个任务的 job_id、cron 表达式、prompt 和当前状态
- 任务管理:使用 job_id 可以精确地管理特定任务,而不会影响其他正在运行的任务
// 创建任务并获取 job_id
const result = CronCreate({
cron: "*/10 * * * *",
prompt: "检查系统负载"
});
// result.job_id 可用于后续操作
CronDelete({ job_id: result.job_id });
提示:建议在创建任务后立即记录 job_id,或将所有任务通过 CronList 统一管理。如果丢失了 job_id,可以通过 CronList 查看所有活跃任务及其对应的 job_id。
核心要点总结:CronCreate 是 Claude Code 中强大的定时任务创建工具。recurring 控制任务是一次性还是重复执行,durable 控制任务是否跨会话保持,job_id 是管理任务的唯一凭证。合理组合这些参数,可以构建从简单提醒到复杂自动化工作流的各种定时任务体系。