跳到主要内容

获取任务

POST http(s)://{{Host}}/v1/queue/take

示例

离线任务示例

请求

curl -X POST "https://${Host}/v1/queue/take" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${apikey}" \
-d '{
"queues": [
"test-queue:1"
],
"strategy": "active_passive",
"endpoint": "/v1/chat/completions",
"size": 1
}'

响应 (离线任务,包含batch_id和trace_id)

{
"test-queue:1": [
{
"ak": "xxx",
"endpoint": "/v1/chat/completions",
"queue": "test-queue",
"level": 1,
"data": {
"model": "deepseek-r1-20250401",
"messages": [
{
"role": "user",
"content": "你好"
}
],
"stream": false
},
"status": "waiting",
"task_id": "TASK-X-X-X-XXXXXXXXXXXX-XXXX-XXXXXX",
"batch_id": "BATCH-X-X-XXXXXXXXXXXX-XXXX-XXXXXX",
"trace_id": "BATCH-X-X-XXXXXXXXXXXX-XXXX-XXXXXX",
"start_time": 1762863595000,
"running_time": 0,
"expire_time": 1762949994000,
"completed_time": 0,
"callback_url": "",
"response_mode": "batch"
}
]
}

在线任务示例

请求

curl -X POST "https://${Host}/v1/queue/take" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${apikey}" \
-d '{
"queues": [
"test-queue:0"
],
"strategy": "fifo",
"endpoint": "/v1/chat/completions",
"size": 1
}'

响应 (在线任务,包含instance_id)

{
"test-queue:0": [
{
"ak": "xxx",
"endpoint": "/v1/chat/completions",
"queue": "test-queue",
"level": 0,
"data": {
"model": "deepseek-r1-20250401",
"messages": [
{
"role": "user",
"content": "你好"
}
],
"stream": false
},
"status": "waiting",
"task_id": "TASK-X-X-X-XXXXXXXXXXXX-XXXX-XXXXXX",
"instance_id": "xx.xx.xx.xx:xxx",
"start_time": 1762863595000,
"running_time": 0,
"expire_time": 1762949994000,
"completed_time": 0,
"callback_url": "",
"response_mode": "blocking"
}
]
}

Request Body Parameters

参数类型必需说明
queuesstring[]Required要获取任务的队列名称列表(格式: "queueName:level")
strategystringOptional队列策略: fifo、round_robin、active_passive、sequential,默认fifo
endpointstringOptional处理任务的能力点
sizeintegerRequired获取任务数

Queue Strategies (队列策略)

fifo策略

  • 逻辑: First-In-First-Out,先进先出
  • 行为: 按照任务提交的时间顺序依次处理,最早提交的任务最先被取出
  • 适用场景: 需要严格按时间顺序处理的场景

round_robin策略

  • 逻辑: 轮询调度,在多个队列间轮流取任务
  • 行为: 依次从每个队列中取任务,实现负载均衡
  • 适用场景: 多个队列需要平均分配处理资源的场景

active_passive策略

  • 逻辑: 主备模式,优先处理主队列任务
  • 行为: 优先从第一个队列(主队列)获取任务,当主队列为空时才从备用队列获取
  • 适用场景: 有优先级区分的场景,高优先级队列优先处理

sequential策略

  • 逻辑: 全局顺序执行,确保每个队列在同一时间只能有一个任务在运行,每个队列只取一个
  • 行为: 跳过正在运行任务的队列,从其他队列中按顺序获取最早的任务,设置运行锁防止并发执行
  • 适用场景: 需要严格顺序执行的场景,避免同一队列任务并发导致的竞争条件

Returns

响应格式:{队列名称: [任务数组]}

字段差异说明

  • 在线任务 (level=0):包含 instance_id 字段,用于实时任务处理和事件总线通信
  • 离线任务 (level=1):包含 batch_idtrace_id 字段,用于批处理任务追踪和管理