定时调度

前置知识: 阅读本文前建议先了解 Bot 管理工作流自动化

定时调度让你为 Bot 创建定时任务,按计划自动执行任务或触发工作流。


概述

定时调度解决的问题:很多操作需要定期执行——每天检查服务器状态、每周生成报告、每小时同步数据。手动触发既繁琐又容易遗忘。

定时调度支持两种目标类型:

  • 任务(Task):定时向 Bot 发送一条指令,Bot 自主执行
  • 工作流(Workflow):定时触发一个工作流执行

创建定时任务

  1. 进入 Bot 详情页 → 定时任务 Tab
  2. 点击 创建
  3. 填写配置

基本配置

字段说明
名称调度任务名称(如”每日巡检”)
执行频率定时规则(可视化配置或高级 Cron 模式)
时区基准时区(上海、UTC、纽约、伦敦)
指令触发时发送给 Bot 的指令文本

执行频率配置

平台提供可视化频率选择器,无需手写 Cron 表达式。选择频率类型后,按提示设置时间参数即可。

频率类型

频率配置项示例
每小时选择分钟(0-59)每小时第 30 分钟执行
每天选择小时 + 分钟每天 09:00 执行
每周勾选星期 + 选择小时 + 分钟每周一、三、五 09:00 执行
每月选择日期 + 小时 + 分钟每月 1 号 00:00 执行

配置完成后,页面会实时显示:

  • 频率描述:自动生成的可读文字(如”每天 09:00”)
  • 接下来 3 次执行时间:预览未来的执行时间点

高级模式

如果预设频率不满足需求,开启高级模式开关,可以直接输入标准 5 位 Cron 表达式:

分 时 日 月 周

常用 Cron 示例:

Cron 表达式含义
0 9 * * 1-5工作日上午 9:00
*/15 * * * *每 15 分钟
0 */2 * * *每 2 小时
0 9,18 * * *每天 9:00 和 18:00

可视化模式和高级模式可以互相切换。如果 Cron 表达式能用可视化方式表达,切换到可视化模式时会自动还原配置;否则会保持高级模式。

目标类型

任务模式(默认):

指定一条指令,调度触发时 Bot 将执行此指令:

检查所有生产服务器的磁盘使用率,如果超过 80% 发出告警。

工作流模式:

选择一个已激活的工作流,调度触发时自动执行该工作流。


管理定时任务

在 Bot 详情页的 定时任务 Tab 中管理所有调度任务。

任务列表

列表展示每个调度任务的:

  • 名称
  • 执行频率:可读的频率描述(鼠标悬停可查看原始 Cron 表达式)
  • 指令摘要
  • 上次执行时间
  • 下次执行时间
  • 状态:启用 / 禁用

操作

  • 启用/禁用:通过开关暂停或恢复调度
  • 编辑:修改频率、指令等配置
  • 删除:移除调度任务
  • 查看执行历史:查看该调度任务的历史执行记录

执行历史

每次调度触发都会记录执行信息:

  • 触发时间
  • 执行状态(成功 / 失败)
  • 关联的 Task 或 Workflow Execution ID

Bot 自建定时任务

如果在 Bot 设置中开启了 自建定时任务 功能,Bot 可以在对话中自行创建、查看和删除定时任务。

例如,用户可以在对话中说:“帮我创建一个定时任务,每天上午 9 点检查服务器状态。“Bot 会调用内置的调度工具来创建。

Bot 自建的定时任务也会出现在 Bot 详情页的定时任务 Tab 中。


常见用法

日报/周报生成

  • 频率:每周 → 周一至周五 → 18:00
  • 指令:汇总今天的任务执行情况,生成日报并发送到 #ops 频道。

服务器健康检查

  • 频率:高级模式 */15 * * * *(每 15 分钟)
  • 指令:检查所有生产服务器的 CPU、内存和磁盘使用率。

定时触发工作流

  • 频率:每天 → 02:00
  • 目标类型:工作流
  • 选择工作流:数据备份工作流

常见问题

调度任务没有触发

  • 确认调度任务处于”启用”状态
  • 确认频率配置和时区设置正确
  • 确认 Bot 处于活跃状态且未暂停

调度任务执行失败

在执行历史中查看失败原因。常见原因包括:

  • Bot 的 LLM 提供商配置无效
  • 月度预算已耗尽
  • 绑定的资源凭据过期

如何设置只执行一次的任务

可视化频率选择器不支持”只执行一次”。替代方案:

  • 使用高级模式设置一个未来的具体时间(如 30 14 15 3 * = 3 月 15 日 14:30),执行后手动禁用
  • 使用 API 直接创建 Task,而非通过调度