队列端点
您可以通过以下端点访问所有队列功能:
例如,要使用 curl 提交请求并将其添加到队列:
request_id的示例响应:
request_id 并提供检查状态、取消或检索响应的 URL,简化您的工作流程而无需额外的端点开发。
请求状态
要监控请求的进度,请使用提供的端点和您的唯一请求 ID。这允许您跟踪状态、队列位置,或在准备就绪时检索响应。端点使用
示例响应
当您的请求在队列中时,您将收到如下响应:可能的状态
您的请求可以处于三种状态之一:-
IN_QUEUE:表示请求正在等待处理。
queue_position:显示您在队列中的位置。response_url:处理完成后检索响应的 URL。
-
IN_PROGRESS:请求当前正在处理中。
logs:详细日志(如果启用)显示处理步骤。response_url:最终响应将可用的位置。
-
COMPLETED:处理已完成。
logs:详细说明整个过程的日志。response_url:您已完成响应的直接链接。
启用日志
日志提供请求处理的洞察。默认情况下它们被禁用,但可以使用查询参数启用:message:事件描述。level:严重程度(例如,INFO、ERROR)。source:日志来源。timestamp:生成日志的时间。
实时监控
要获得持续更新,请使用流式端点:text/event-stream 格式的实时状态更新,直到请求完成。
Webhooks
如果您不想轮询,可以在提交请求时传入webhook 查询参数。当请求达到最终状态时,Sunra 会将最终结果 POST 到该 URL,无需保持长连接或定时轮询。
启用 Webhooks
将经过 URL 编码的webhook 查询参数附加到提交端点:
https%3A%2F%2F...),并确保 Sunra 可以访问到该地址;强烈建议使用 HTTPS。提交响应保持不变 — 您仍会收到 request_id 以及相同的状态/取消/响应 URL。
触发时机
Sunra 仅在最终事件时调用您的 webhook:succeeded— 请求已完成,输出包含在负载中。failed— 请求出错,错误详情包含在负载中。
IN_QUEUE、IN_PROGRESS)不会触发 webhook。如果您还需要进度更新,请将 webhook 与上文的流式或轮询端点结合使用。
请求格式
Sunra 将向您的 webhook URL 发送POST 请求,包含以下请求头:
您的端点必须在 5 秒内返回
2xx 状态码。请快速确认并将耗时操作放到后台任务中处理 — 响应过慢会被视为失败并触发重试。
负载
成功事件:output 替换为 error。code 能告诉你重试是否有意义——完整列表与重试指引见 Prediction 失败代码:
重试机制
Webhook 投递保证至少一次。如果您的端点超时(5 秒)或返回非2xx 状态,Sunra 会进行最多 3 次指数退避重试,初始延迟 10 秒,最大不超过 30 秒。最后一次重试失败后,会记录失败信息且不再尝试。
由于重试可能多次投递同一事件,请确保您的处理程序是幂等的 — 使用 id 字段作为去重键。
最佳实践
- 使用 HTTPS 并验证流量确实来自您预期的端点。
- 立即返回
2xx,将负载放到异步流程中处理。 - 将投递视为至少一次,并按
id去重。 - 如果在最终事件之前还需要进度更新,请将 webhook 与轮询或流式端点结合使用。
取消请求
如果您的请求仍在队列中,您可以取消它:检索响应
一旦您的请求为COMPLETED,使用以下方式检索响应:
使用 Sunra 客户端简化集成
Sunra 客户端自动化状态跟踪,简化使用 Sunra 功能的应用程序开发。速率限制
为了确保公平使用和系统稳定性,我们的 API 端点受以下速率限制约束:
如果您超过这些限制,您将收到
403 Forbidden 响应。我们建议实施具有指数退避的重试机制来处理这些情况。