Skip to content

定时任务

管理项目的定时调度任务(CRUD、手动触发、执行日志)。

源码: apps/backend/src/routes/schedules.ts

所有端点都需要认证(combinedAuth),路由挂载在 /projects/:projectId/schedules 下。


GET /projects/:projectId/schedules

获取项目的定时任务列表。

认证方式

JWT Token / API Key(combinedAuth

权限要求

项目访问权限(团队成员)

请求参数

Path 参数

参数类型必填说明
projectIdstring项目 UUID

响应格式

状态码: 200

json
{
  "schedules": [
    {
      "id": "uuid",
      "project_id": "uuid",
      "team_id": "uuid",
      "deployment_id": "uuid",
      "name": "每日数据同步",
      "description": "每天凌晨同步数据",
      "cron_expression": "0 0 * * *",
      "timezone": "Asia/Shanghai",
      "trigger_config": {},
      "enabled": true,
      "timeout_ms": 60000,
      "max_retries": 3,
      "created_at": "2026-03-07T12:00:00.000Z",
      "updated_at": "2026-03-07T12:00:00.000Z",
      "deleted_at": null
    }
  ]
}

created_at 降序排列。

错误码

状态码错误说明
403无权访问该项目非团队成员

GET /projects/:projectId/schedules/:id

获取单个定时任务详情。

认证方式

JWT Token / API Key(combinedAuth

权限要求

项目访问权限(团队成员)

请求参数

Path 参数

参数类型必填说明
projectIdstring项目 UUID
idstring定时任务 UUID

响应格式

状态码: 200

json
{
  "schedule": {
    "id": "uuid",
    "project_id": "uuid",
    "team_id": "uuid",
    "deployment_id": "uuid",
    "name": "每日数据同步",
    "description": "每天凌晨同步数据",
    "cron_expression": "0 0 * * *",
    "timezone": "Asia/Shanghai",
    "trigger_config": {},
    "enabled": true,
    "timeout_ms": 60000,
    "max_retries": 3,
    "created_at": "2026-03-07T12:00:00.000Z",
    "updated_at": "2026-03-07T12:00:00.000Z",
    "deleted_at": null
  }
}

错误码

状态码错误说明
403无权访问该项目非团队成员
404任务不存在任务不存在或已删除

POST /projects/:projectId/schedules

创建定时任务。

认证方式

JWT Token / API Key(combinedAuth

权限要求

项目管理员权限(admin)

请求参数

Path 参数

参数类型必填说明
projectIdstring项目 UUID

Body 参数

json
{
  "name": "每日数据同步",
  "description": "每天凌晨同步数据",
  "cron_expression": "0 0 * * *",
  "timezone": "Asia/Shanghai",
  "deployment_id": "uuid",
  "trigger_config": {},
  "enabled": true,
  "timeout_ms": 60000,
  "max_retries": 3
}
参数类型必填默认值说明
namestring-任务名称(项目内唯一)
cron_expressionstring-Cron 表达式(5 字段 分 时 日 月 周 或 6 字段 秒 分 时 日 月 周
descriptionstringnull任务描述
timezonestring"UTC"时区
deployment_idstringnull关联的部署 UUID
trigger_configobject{}触发配置
enabledbooleantrue是否启用
timeout_msnumber站点默认值超时时间(毫秒)
max_retriesnumber3最大重试次数

响应格式

状态码: 201

json
{
  "schedule": {
    "id": "uuid",
    "project_id": "uuid",
    "team_id": "uuid",
    "name": "每日数据同步",
    "cron_expression": "0 0 * * *",
    "...": "..."
  }
}

错误码

状态码错误说明
400name 和 cron_expression 为必填缺少必填字段
400Cron 表达式无效: ...Cron 表达式格式错误
400部署不存在或不属于该项目deployment_id 无效
403需要项目管理员权限缺少 admin 权限
404项目不存在项目不存在
409任务名称已存在名称重复(唯一约束冲突)

PUT /projects/:projectId/schedules/:id

更新定时任务。

认证方式

JWT Token / API Key(combinedAuth

权限要求

项目管理员权限(admin)

请求参数

Path 参数

参数类型必填说明
projectIdstring项目 UUID
idstring定时任务 UUID

Body 参数

所有字段可选,仅传入需要更新的字段:

json
{
  "name": "新名称",
  "cron_expression": "0 */2 * * *",
  "enabled": false
}

允许更新的字段:name, description, cron_expression, timezone, deployment_id, trigger_config, enabled, timeout_ms, max_retries

响应格式

状态码: 200

json
{
  "schedule": { "...更新后的完整记录..." }
}

错误码

状态码错误说明
400Cron 表达式不能为空cron_expression 为空字符串
400Cron 表达式无效: ...Cron 表达式格式错误
400部署不存在或不属于该项目deployment_id 无效
403需要项目管理员权限缺少 admin 权限
404任务不存在任务不存在或已删除

DELETE /projects/:projectId/schedules/:id

删除定时任务(软删除,同时禁用任务)。

认证方式

JWT Token / API Key(combinedAuth

权限要求

项目管理员权限(admin)

请求参数

Path 参数

参数类型必填说明
projectIdstring项目 UUID
idstring定时任务 UUID

响应格式

状态码: 200

json
{
  "success": true
}

错误码

状态码错误说明
403需要项目管理员权限缺少 admin 权限
404任务不存在任务不存在或已删除

POST /projects/:projectId/schedules/:id/trigger

手动触发定时任务执行。

认证方式

JWT Token / API Key(combinedAuth

权限要求

项目访问权限(团队成员)

请求参数

Path 参数

参数类型必填说明
projectIdstring项目 UUID
idstring定时任务 UUID

响应格式

状态码: 200(成功)

json
{
  "success": true,
  "result": { "...执行结果..." }
}

状态码: 500(执行失败)

json
{
  "success": false,
  "error": "错误信息"
}

错误码

状态码错误说明
400任务未关联部署任务没有配置 deployment_id
403无权访问该项目非团队成员
404任务不存在任务不存在或已删除
500<error message>执行过程中发生错误

GET /projects/:projectId/schedules/:id/logs

获取定时任务的执行日志。

认证方式

JWT Token / API Key(combinedAuth

权限要求

项目访问权限(团队成员)

请求参数

Path 参数

参数类型必填说明
projectIdstring项目 UUID
idstring定时任务 UUID

Query 参数

参数类型默认值说明
limitnumber50返回数量
offsetnumber0偏移量

响应格式

状态码: 200

json
{
  "logs": [
    {
      "id": "uuid",
      "schedule_id": "uuid",
      "project_id": "uuid",
      "status": "success",
      "started_at": "2026-03-07T00:00:00.000Z",
      "finished_at": "2026-03-07T00:00:05.000Z",
      "error": null,
      "result": { "..." }
    }
  ],
  "total": 100,
  "limit": 50,
  "offset": 0
}

started_at 降序排列。

错误码

状态码错误说明
403无权访问该项目非团队成员

AI Workflow Editor