Skip to main content
GET /api/v1/r/tasks/{taskId}/events 打开一个 Server-Sent Events 流,每次状态变化或进度更新都会推送一个事件。连接保持开启直到任务 进入终态(completedfailedcancelled),然后关闭。 请优先使用它,而非轮询 GET /r/tasks/{taskId} —— 延迟更低、请求更少。

建立连接

使用 Bearer 令牌(JWT、sk-dk-):
浏览器内建的 EventSource 支持自定义请求头,意味着它无法 携带 Authorization 头。服务端运行时(Node fetch、Python requestshttpx)、React Native、以及 eventsource 这类库都 可以正常使用。在浏览器中请通过你自己的后端中转。

事件类型

status

progress

Nerfstudio 任务额外携带 stagedownloadprocess_datatrainexportupload)以及人类可读的 message 字段。

终态事件

这三种事件之后服务器会关闭连接。

error

服务端读取任务状态的瞬时问题。视为可恢复 —— 任务本身可能仍在运行。 如果流也关闭,请改为轮询(见下方)。

完整事件流示例

一个典型的 ComfyUI 任务从头到尾:

轮询兜底

如果网络无法承载 SSE,或你不想长连接,可改为轮询 GET /r/tasks/{taskId} 直到 task_statuscompletedfailedcancelled 之一。轮询间隔 3 秒是个合理默认值。
当任务为 completed 时,通过 GET /r/tasks/{taskId}/result 获取产物链接。

消费事件流

相关