Skip to content

概述

ScheduledTasks 页面提供基于 Cron 的定时任务调度系统,支持三种任务类型(HTTP/Shell/Workflow),可通过标准 Cron 表达式或循环模式配置执行频率。

页面分为两个 Tab:Tasks(任务列表)和 Logs(执行日志)。

任务列表(Tasks Tab)

创建和编辑任务

点击右上角 Add Task 按钮打开任务创建表单,编辑已有任务点击任务行右侧的编辑按钮。

基本信息

字段说明
Task Name任务名称(必填)
Task Group任务分组(可选,用于分类管理)
Status1 = 启用,0 = 禁用

调度配置

Schedule Mode(调度模式)

模式说明
cron_once标准 Cron 表达式调度(默认)
cron_loop循环执行模式

Cron Expression:标准 5 段 Cron 表达式,格式为:

┌───────────── 分钟 (0-59)
│ ┌─────────── 小时 (0-23)
│ │ ┌───────── 日 (1-31)
│ │ │ ┌─────── 月 (1-12)
│ │ │ │ ┌───── 星期 (0-6,0 = 周日)
│ │ │ │ │
* * * * *

Cron 预设快捷选择

预设表达式说明
每 5 分钟*/5 * * * *每隔 5 分钟执行
每小时0 * * * *每小时整点执行
每天早上0 9 * * *每天早上 9 点执行
工作日早上0 9 * * 1-5周一至周五早上 9 点执行
每月 1 日0 2 1 * *每月 1 日凌晨 2 点执行

Cron Loop 模式(仅 cron_loop 模式):

字段说明
Loop Interval Seconds循环间隔秒数(必填,需 > 0)
Loop Window Seconds检测窗口秒数(必填,需 > 0)

Cron Loop 模式的工作原理:在检测窗口内每隔固定间隔检查是否满足条件,适合需要高频检测的场景。

任务类型

HTTP 类型

定时向指定 URL 发送 HTTP 请求。

字段说明
Invoke Target目标 URL
HTTP Method请求方法(GET/POST/PUT/DELETE/PATCH)
Args请求参数或 Body(可选)

Shell 类型

定时执行本地 Shell 命令。

字段说明
Invoke TargetShell 命令

Workflow 类型

定时启动工作流(需 Claude Backend)。Workflow 类型配置最为复杂,包括以下参数:

字段说明
Workflow从已安装工作流列表中选择(do/omo/bmad/sparv/requirements 等)
Backend运行后端(claude/codex/gemini/opencode,workflow 锁定为 claude)
GroupProvider Group 选择(可选)
Model模型选择(可选,留空使用默认)
Workdir工作目录(必填)
Task Description任务描述(将作为工作流输入)

Workflow 配置附加说明

  • 选择工作流后,系统自动将 Backend 锁定为 claude
  • Claude Backend 为必选,未配置 Claude 时会提示错误
  • 可点击文件夹图标选择工作目录
  • 可点击"View Config Hierarchy"查看当前工作目录的配置层级(Global → Project → Workdir)

执行策略

字段说明默认值
Timeout超时时间(秒)60
Retry Times失败重试次数0
Retry Interval重试间隔(秒)0
Multi Instance多实例开关单实例

Multi Instance 说明

  • 单实例(Off):前一个执行实例未完成时,新调度会被跳过
  • 多实例(On):允许同时运行多个执行实例

Loop 模式附加字段(仅 cron_loop):

  • Loop Interval Seconds:循环执行间隔
  • Loop Window Seconds:检测窗口

任务操作

每个任务卡片右侧提供以下操作按钮:

按钮说明
播放图标立即执行(手动触发,跳过调度时间)
叉号图标取消(正在运行时取消执行)
编辑图标打开编辑表单
删除图标删除任务

启用/禁用开关:任务卡片左侧的 Toggle 开关控制任务的启用状态。禁用的任务不会被调度执行,但仍保留在系统中。

执行日志(Logs Tab)

Logs Tab 展示所有任务的执行历史记录。

日志过滤

过滤器说明
搜索框按任务名称关键词搜索
Task Filter按任务筛选(All 或指定任务)
Trigger Filter按触发源筛选(All/Cron/Manual)
Status Filter按状态筛选(All/Success/Failed/Running/Skipped)
Time Range时间范围(All/Today/7 Days/30 Days)

日志表格

说明
复选框多选删除
Task Name任务名称
Trigger触发源徽章(蓝色=Cron/紫色=Manual)
Last Run执行开始时间
Total Time总耗时(毫秒)
Status状态徽章(Success/Failed/Running/Skipped)
Actions操作(查看结果/取消/删除)

Status 说明

状态颜色说明
success绿色执行成功
failed红色执行失败
running黄色正在执行
skipped灰色被跳过(通常因为单实例模式下前一个实例未完成)

日志操作

查看结果:点击眼睛图标,在弹出 Modal 中查看完整的执行结果输出(stdout/stderr)。

删除日志

  • 单条删除:点击删除图标
  • 批量删除:勾选多条后点击"Delete Selected"按钮(不会删除正在运行的日志)

清空日志:点击清空操作可按当前过滤条件清空日志。

分页

日志列表支持分页浏览,每页可显示 10/20/50/100 条记录,底部显示分页导航和当前页/总页数信息。

实时事件订阅

ScheduledTasks 页面通过 Wails EventsOn 实时订阅以下事件:

  • scheduled:task_updated:任务状态变更(自动刷新任务列表)
  • scheduled:log_updated:新日志写入(自动刷新日志列表并同步运行中任务状态)

这确保了任务执行状态和日志的实时更新。

与其他页面的联动

目标联动方式
Workflow 任务Terminal执行时自动跳转到 Terminal 页面
Workflow 任务Provider执行时使用 Provider 配置的 Backend
Workflow ConfigSettings查看 Config Hierarchy 时调用 AI 分析配置
Log - RunningTerminal可取消正在运行的日志关联的任务

License 要求

定时任务功能受 License 层级控制:

功能CommunityProTeam
HTTP 定时任务NoYesYes
Shell 定时任务NoYesYes
Workflow 定时任务NoYesYes

Community 用户无法使用任何定时任务功能。在 Pro/Team 版本中,Workflow 类型任务需要 Claude Backend 可用。

完整授权差异见授权等级

典型使用场景

场景一:每日代码扫描

任务名称:Daily Code Scan
类型:Workflow
工作流:do
Cron:0 9 * * *
任务描述:执行全库代码质量和安全扫描

场景二:定时健康检查

任务名称:Health Check
类型:HTTP
URL:https://your-app.com/health
Cron:*/5 * * * *
超时:30s

场景三:高频数据同步

任务名称:Data Sync Loop
类型:Shell
命令:./sync.sh
模式:Cron Loop
间隔:30s
窗口:600s

故障排查

任务未执行

  1. 确认任务状态为启用(Status = 1)
  2. 检查 Cron 表达式是否正确
  3. 确认应用正在运行(Cron 调度依赖应用进程)
  4. 查看 Logs Tab 是否有执行记录

任务失败

  1. 点击失败日志查看详细错误信息
  2. HTTP 类型:检查 URL 是否可访问、网络是否通畅
  3. Shell 类型:检查命令语法、工作目录是否正确
  4. Workflow 类型:检查 Claude Backend 是否可用、工作流是否正确安装

任务堆积(同一任务短时间内多次触发)

  1. 确认是否使用了 Multi Instance 模式
  2. 检查 Timeout 设置是否合理(Timeout 过短可能导致误判为失败)
  3. 考虑切换到单实例模式避免重复执行

Workflow 任务卡住

  1. 在 Logs Tab 找到对应运行中(Running)日志
  2. 点击取消按钮终止执行
  3. 检查工作流配置是否正确

Workflows / Orchestration / Execution