轮询 Work

更新时间:
复制 MD 格式

从 self-hosted Environment claim 一个可用 work item。

GET /api/v1/cloud/environments/{environment_id}/work/poll

self_hosted Environment claim 一个可用 work item。没有可用 work 时返回 HTTP 200 OK,响应体为 JSON null

Poll 只表示投递 work item,不表示确认执行。worker 应在执行 Session work 前调用 Ack work item

路径参数

参数

类型

说明

environment_id

string

Environment ID,前缀为 env_

请求头

头部

必选

说明

Authorization

Bearer $QODER_PAT

Worker-ID

稳定的 worker 标识。推荐传入,用于队列统计和 ack 身份校验

查询参数

参数

类型

必选

默认值

说明

block_ms

integer

-

long poll 等待时间,单位毫秒。取值 1 到 999;省略时为非阻塞 poll

reclaim_older_than_ms

integer

5000

queued item 已投递但未 ack 超过该毫秒数后允许重新投递。必须为非负整数

示例请求

curl -X GET "https://api.qoder.com.cn/api/v1/cloud/environments/env_019e64e01a137caf953ac2ac7b42ec5c/work/poll?block_ms=999" \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Worker-ID: byoc-worker-01"

示例响应:有 work

HTTP 200 OK

{
  "id": "work_019f3be4fd2475d9a784bf2c739e1194",
  "type": "work",
  "environment_id": "env_019e64e01a137caf953ac2ac7b42ec5c",
  "data": {
    "type": "session",
    "id": "sess_019f3be3fa66750bb9a1fbcde85b5fe1"
  },
  "state": "queued",
  "created_at": "2026-07-01T08:15:01Z",
  "acknowledged_at": null,
  "started_at": null,
  "latest_heartbeat_at": null,
  "stop_requested_at": null,
  "stopped_at": null,
  "metadata": {}
}

示例响应:无 work

HTTP 200 OK

null

响应字段

返回 Work item 对象;没有可用 item 时返回 null

错误码

HTTP

type

触发条件

400

invalid_request_error

block_ms 不是 1 到 999 之间的整数

400

invalid_request_error

reclaim_older_than_ms 不是非负整数

400

invalid_request_error

Environment 不是 self_hosted

401

authentication_error

PAT 无效或过期

403

permission_error

无权限执行此操作

404

not_found_error

Environment 不存在

完整错误信封格式见 错误参考

注意事项

  • Worker-ID 是 worker 自定义的业务标识,不是认证凭据。

  • 如果 poll 和 ack 都传入 Worker-ID,且两次值不一致,ack 会返回 409。

  • long poll 最多等待一次 block_ms;收到 null 后客户端应继续下一轮 poll。