跳转到主要内容

异步作业与轮询

大多数写入操作都是异步的。

会立即返回什么

这些端点会接收工作并返回你可以轮询的 ID:
  • POST /projects
  • POST /projects/{projectId}/tasks/stem-separation
  • POST /projects/{projectId}/tasks/lyrics-sync
  • POST /projects/{projectId}/exports

需要轮询什么

  • 轮询 GET /tasks/{taskId} 以获取执行状态和填充后的任务输出。
  • 读取 GET /projects/{projectId} 以获取长期存在的项目状态。
  • 读取 GET /exports/{exportId} 以获取最新的导出下载 URL。

实用的轮询模型

  1. 发起一次变更操作并保存返回的 ID。
  2. 轮询 GET /tasks/{taskId},直到任务到达终止状态。
  3. 通过 ID 重新读取持久资源,而不是信任过期的缓存状态。
  4. 对于下载,在你准备使用该 URL 时再获取 GET /exports/{exportId}

为什么这很重要

  • 任务状态是执行时间线。
  • 项目状态是持久的真实来源。
  • 导出下载 URL 应被视为可刷新,而不是永久不变。