Nox-Lumen MfgNox-Lumen Mfg

Cron 定时调度

为什么 Cron 是一等公民

在平台六层架构中,定时调度事件触发并列,都是"把事件送到 Session"的基础设施:

Rendering diagram…

Cron 让 Agent 能完成周期性、需主动触发的工作——日报、周报、定期巡检、闹钟提醒、批量任务调度。

三种调度类型

类型说明schedule_value 示例
at一次性定时,执行完自动失效2026-04-25T09:00:00(ISO 格式,至少 1 分钟后)
cron标准 5 段 crontab0 9 * * *(每天 9 点)/ 0 10 * * 1(每周一 10 点)
every固定间隔30m2h1d(最小 5 分钟)

两种执行模式

模式说明适用场景
isolated创建临时 Session 独立执行默认推荐,任务之间互不影响
main在创建它的 Session 中执行需要继承当前会话的资料、记忆、上下文

投递模式

调度触发后,结果可以投递到:

模式说明
SESSION投递回一个 Session(默认)
CHANNEL推送到消息渠道(飞书群、企业微信群、邮件)
WEBHOOK回调一个 HTTP 端点
LOG只记日志不推送

如果任务是在群聊中被创建的,结果会自动推送回那个群——不用额外配置。

冲突策略

当一个任务还在执行、下一次又到点时:

策略行为
SKIP跳过本次,等下一个周期
QUEUE排队等待,前一次完成后执行
FALLBACK_ISOLATED本次降级为 isolated 单独执行

重试策略

  • 最大尝试:默认 3 次
  • 退避序列30s → 60s → 300s → 900s → 3600s
  • 可重试错误timeout / rate_limit / server_error / network_error
  • 不可重试:业务错误、权限错误等 permanent_error

Agent 自主调度

Agent 有一个内置工具 manage_cron_job,支持在对话中用自然语言创建、列表、删除定时任务——用户不需要进管理后台

用户:每天早上 9 点给我一份前一天的研发进展简报

Agent 调用:
manage_cron_job(
    action="create",
    name="每日研发进展简报",
    schedule_type="cron",
    schedule_value="0 9 * * *",
    prompt="汇总昨日所有 PR/MR 的变更、测试结果、Bug 进展,按团队分组,生成简报",
    execution_mode="isolated",
)

到点后,系统自动:

Rendering diagram…

典型场景

早上 9 点推送前日简报             → cron "0 9 * * *"
每周一 10 点发团队周报             → cron "0 10 * * 1"
每 30 分钟巡检 CI/CD               → every "30m"
下周一开会前 15 分钟提醒            → at "2026-04-28T09:45:00"
每晚 2 点重建长期记忆索引           → cron "0 2 * * *"
每周五下午自动跑合规审计            → cron "0 15 * * 5"
每日凌晨同步 DOORS 需求变更         → cron "0 1 * * *"

Cron vs EventTrigger 如何选

维度Cron 定时调度EventTrigger 事件触发
触发源时间到了外部事件来了
典型用途周报、巡检、闹钟、定期同步PR 审查、需求变更通知、消息处理
创建方式Agent 自主创建 / 管理后台管理后台配置 Webhook / 路由规则
典型并发同任务通常单实例同事件可能短时间高并发

可以组合使用:定时任务可以触发 EventTrigger 的链式事件;EventTrigger 也可以在 Session 内创建定时任务。

持久化与可观测

  • MySQL 持久化 — 进程重启不丢失任务
  • 执行历史 — 每次执行的状态、耗时、输出、错误都可查
  • 审计日志 — 创建/修改/删除全记录,跨租户不混
  • APM 追踪 — 每次触发都有独立 Trace ID,详见可观测性

相关文档

On this page