任务中心模块¶
功能说明
接口前缀统一为 http(s)://<your-domain>
生产环境应使用 HTTPS 以保证认证令牌。 HTTP 仅建议用于开发环境。
通用异步任务管理系统 。主要支持 Suno 等平台的音乐生成任务。包含任务状态自动更新、失败重试、配额退还等机制。
🔐 用户鉴权¶
获取我的任务¶
- 接口名称:获取我的任务
- HTTP 方法:GET
- 路径:
/api/task/self
- 鉴权要求:用户
- 功能简介:分页获取当前用户的任务列表,支持按平台、任务 ID、状态等条件过滤
💡 请求示例:
const response = await fetch('/api/task/self?p=1&page_size=20&platform=suno&task_id=task123&status=SUCCESS&action=song&start_timestamp=1640908800&end_timestamp=1640995200', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_user_token'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": {
"items": [
{
"id": 1,
"created_at": 1640908800,
"updated_at": 1640909000,
"task_id": "task123456",
"platform": "suno",
"user_id": 1,
"quota": 1000,
"action": "song",
"status": "SUCCESS",
"fail_reason": "",
"submit_time": 1640908800,
"start_time": 1640908900,
"finish_time": 1640909000,
"progress": "100%",
"properties": {},
"data": {}
}
],
"total": 25,
"page": 1,
"page_size": 20
}
}
❗ 失败响应示例:
🧾 字段说明:
p
(数字): 页码,默认为 1page_size
(数字): 每页数量,默认为 20platform
(字符串): 任务平台,可选task_id
(字符串): 任务 ID 过滤,可选status
(字符串): 任务状态过滤,可选值:"NOT_START"、"SUBMITTED"、"QUEUED"、"IN_PROGRESS"、"FAILURE"、"SUCCESS"、"UNKNOWN"action
(字符串): 任务类型过滤,如"song"、"lyrics"等start_timestamp
(数字): 开始时间戳,可选end_timestamp
(数字): 结束时间戳,可选
🧾 返回字段说明:
id
(数字): 数据库记录 IDtask_id
(字符串): 第三方任务 IDplatform
(字符串): 任务平台user_id
(数字): 用户 IDquota
(数字): 消耗的配额action
(字符串): 任务类型status
(字符串): 任务状态fail_reason
(字符串): 失败原因submit_time
(数字): 提交时间戳start_time
(数字): 开始时间戳finish_time
(数字): 完成时间戳progress
(字符串): 进度百分比properties
(对象): 任务属性data
(对象): 任务结果数据total
(数字): 符合条件的任务总记录数page
(数字): 当前返回的页码page_size
(数字): 每页展示的任务记录数
🔐 管理员鉴权¶
获取全部任务¶
- 接口名称:获取全部任务
- HTTP 方法:GET
- 路径:
/api/task/
- 鉴权要求:管理员
- 功能简介:分页获取系统中所有任务,支持按渠道 ID、平台、用户 ID 等条件过滤
💡 请求示例:
const response = await fetch('/api/task/?p=1&page_size=20&channel_id=1&platform=suno&task_id=task123&status=SUCCESS&action=song&start_timestamp=1640908800&end_timestamp=1640995200', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_admin_token'
}
});
const data = await response.json();
✅ 成功响应示例:
{
"success": true,
"message": "",
"data": {
"items": [
{
"id": 1,
"created_at": 1640908800,
"task_id": "task123456",
"platform": "suno",
"user_id": 1,
"channel_id": 1,
"quota": 1000,
"action": "song",
"status": "SUCCESS",
"submit_time": 1640908800,
"finish_time": 1640909000,
"progress": "100%",
"data": {}
}
],
"total": 100,
"page": 1,
"page_size": 20
}
}
❗ 失败响应示例:
🧾 字段说明:
p
(数字): 页码,默认为 1page_size
(数字): 每页数量,默认为 20channel_id
(字符串): 渠道 ID 过滤,可选platform
(字符串): 任务平台过滤,可选task_id
(字符串): 任务 ID 过滤,可选status
(字符串): 任务状态过滤,可选action
(字符串): 任务类型过滤,可选start_timestamp
(数字): 开始时间戳,可选end_timestamp
(数字): 结束时间戳,可选-
返回字段包含用户任务的所有字段,另外增加:
channel_id
(数字): 使用的渠道 ID