CronCreate创建定时任务

使用CronCreate创建定时任务

一、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 会在任务执行一次后自动将其删除,避免产生残留任务。

典型场景:

CronCreate({ cron: "30 14 * * *", prompt: "检查构建状态并报告结果", recurring: false })
提示:一次性任务创建后,CronCreate 会立即返回一个 job_id。你可以通过 CronList 确认任务是否存在,并在任务执行前使用 CronDelete 取消它。

三、创建重复任务

重复任务适用于需要按固定周期持续执行的常规性操作。由于 recurring 默认值为 true,创建重复任务时无需显式设置该参数,任务会根据 cron 表达式无限期地持续触发。

典型场景:

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 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 是管理任务的唯一凭证。合理组合这些参数,可以构建从简单提醒到复杂自动化工作流的各种定时任务体系。