erp-java/services/scheduled-task-service/doc/API.md

4.9 KiB
Raw Blame History

定时任务调度服务 - API文档

概述

分布式定时任务调度服务,支持:

  • 定时任务CRUD
  • Cron表达式配置
  • 任务执行记录
  • 任务调度管理
  • 失败重试机制
  • 任务监控告警
  • XXL-Job兼容接口

基础信息

  • 基础路径: http://localhost:8088
  • Swagger UI: http://localhost:8088/swagger-ui.html
  • API文档: http://localhost:8088/v3/api-docs

认证

本服务暂未实现认证生产环境请添加JWT或其他认证机制。


定时任务管理

创建任务

POST /api/task

请求体:

{
  "taskName": "数据同步任务",
  "description": "每日凌晨同步业务数据",
  "taskGroup": "sync",
  "cronExpression": "0 0 2 * * ?",
  "taskClass": "dataSyncTask",
  "methodName": "execute",
  "taskParams": "{\"source\":\"erp\",\"target\":\"bi\"}",
  "taskType": "BEAN",
  "concurrent": true,
  "maxRetries": 3,
  "retryInterval": 60,
  "timeout": 3600,
  "alertEnabled": true,
  "alertEmails": "admin@example.com",
  "misfirePolicy": "DO_NOTHING",
  "owner": "admin"
}

响应:

{
  "id": 1,
  "taskName": "数据同步任务",
  "status": "DRAFT",
  ...
}

查询任务

GET /api/task/{id}

更新任务

PUT /api/task/{id}

删除任务

DELETE /api/task/{id}

分页查询任务

GET /api/task/list

参数 类型 必需 说明
taskName string 任务名称(模糊查询)
taskGroup string 任务分组
status string 状态
page int 页码默认1
pageSize int 每页大小默认20

启动任务

POST /api/task/{id}/start

停止任务

POST /api/task/{id}/stop

暂停任务

POST /api/task/{id}/pause

恢复任务

POST /api/task/{id}/resume

立即执行一次

POST /api/task/{id}/execute

获取运行中的任务

GET /api/task/running

获取任务统计

GET /api/task/stats

获取最近执行时间

GET /api/task/{id}/next-fire-times?n=5

验证Cron表达式

GET /api/task/validate-cron?cronExpression=0/5 * * * * ?


执行记录管理

查询任务执行记录

GET /api/task/log/task/{taskId}

查询所有执行记录

GET /api/task/log/list

条件查询

GET /api/task/log/query

参数 类型 必需 说明
taskId long 任务ID
status string 执行状态
startTime string 开始时间(yyyy-MM-dd HH:mm:ss)
endTime string 结束时间

根据批次号查询

GET /api/task/log/batch/{batchNo}

查询可重试的失败记录

GET /api/task/log/retryable?maxRetries=3

清理旧日志

DELETE /api/task/log/cleanup?days=30

获取今日统计

GET /api/task/log/stats/today


XXL-Job兼容接口

获取所有任务

GET /api/xxl-job/jobinfo/pageList

添加任务

POST /api/xxl-job/jobinfo/add

更新任务

POST /api/xxl-job/jobinfo/update

删除任务

POST /api/xxl-job/jobinfo/remove?id={id}

停止任务

POST /api/xxl-job/jobinfo/stop?id={id}

启动任务

POST /api/xxl-job/jobinfo/start?id={id}

触发任务执行

POST /api/xxl-job/jobinfo/trigger?id={id}

获取任务分组

GET /api/xxl-job/jobgroup/pageList


健康检查

健康检查

GET /actuator/health

响应:

{
  "status": "UP",
  "timestamp": "2024-01-01T12:00:00",
  "components": {
    "taskScheduler": {
      "status": "UP",
      "details": {
        "runningTasks": 5
      }
    }
  }
}

Prometheus指标

GET /actuator/prometheus


任务类型

类型 说明
BEAN Spring Bean任务通过Bean名称调用
CLASS Java Class任务通过反射调用
XXL_JOB XXL-Job兼容模式

任务状态

状态 说明
DRAFT 草稿
RUNNING 运行中
STOPPED 已停止
PAUSED 暂停
ERROR 异常
DELETED 已删除

执行状态

状态 说明
RUNNING 执行中
SUCCESS 成功
FAILED 失败
RETRYING 重试中
TIMEOUT 超时
CANCELLED 已取消

Cron表达式示例

表达式 说明
0/5 * * * * ? 每5秒执行
0 0 0 * * ? 每天零点执行
0 0 8 ? * MON-FRI 工作日早上8点执行
0 0/30 * * * ? 每30分钟执行
0 0 12 * * ? 每天中午12点执行
0 30 10 ? * 1-5 工作日早上10:30执行

错误码

错误码 说明
TASK_NOT_FOUND 任务不存在
TASK_EXISTS 任务已存在
INVALID_CRON 无效的Cron表达式
EXECUTION_FAILED 任务执行失败
CANNOT_START 无法启动任务
CANNOT_STOP 无法停止任务
TASK_TIMEOUT 任务执行超时