LAS 算子为您提供异步接口的异步回调(Callback)能力,您可在发起算子调用任务时设置回调参数callback.url,当算子任务状态发生变更后,LAS 会向该 URL 发送 HTTP POST 通知。
/api/v1/submit 提交异步任务,并传入 callback.url。task_id,用户保存该 task_id。callback.url 发起 POST 通知。task_id 幂等处理。/api/v1/poll 查询任务状态。callback.url 配置要求 规则 | 说明 |
|---|---|
协议 | 默认仅允许 |
Host | 必须存在合法 host。 |
Userinfo | 不允许 URL 中包含 userinfo,例如 |
Localhost | 不允许 |
地址可达性 | URL 应为 LAS 服务可访问的公网地址。 |
Redirect | LAS 不跟随 HTTP redirect。callback URL 应直接接收 POST。 |
响应耗时 | 建议用户服务在 5 秒内返回 2xx。 |
LAS 会向用户提供的 callback.url 发起 HTTP POST。
Content-Type: application/json; charset=utf-8
用户侧应以 metadata.task_id 做幂等处理。
字段 | 类型 | 说明 |
|---|---|---|
| string | 异步任务 ID。用户侧建议以此作为幂等键。 |
| string | 任务终态。取值包括:
|
| string | 业务错误码。成功通常为 |
| string | 错误信息。成功为空字符串。 |
| object | 必选。仅任务成功且服务端策略开启 |
metadata.task_id 非空。task_id。2xx。task_status 更新本地任务状态。2xx,后续较长的处理链路,建议放到用户自己的异步队列。{ "operator_id": "las_xxx", "operator_version": "v1", "data": { "input": "..." }, "callback": { "url": "https://example.com/las/callback" } }
LAS 会向用户提供的 URL 发起 HTTP POST。
{ "metadata": { "task_id": "task_xxx", "task_status": "COMPLETED", "business_code": "0", "error_msg": "" }, "data": { "result": "..." } }
{ "metadata": { "task_id": "task_xxx", "task_status": "FAILED", "business_code": "Server.InternalError", "error_msg": "..." } }
以下为您提供主流编程语言下,可搭建 callback 接收服务的代码骨架,您可以直接下载对应 Demo ,基于 Demo 对接开发callback 接收服务。
说明
未提供 Demo 的编程语言,可根据文档说明和示例、已有语言 Demo 示例进行改写。
问题 | 表现 | 处理建议 |
|---|---|---|
算子暂不支持 callback | Submit 返回 | 当前算子暂不支持 Callback 能力,建议使用 poll 接口轮询任务状态获取算子处理结果。 |
URL 非 HTTPS | Submit 返回 | 请使用 HTTPS 格式的 URL;HTTP 格式的URL 存在安全风险,不建议使用。如确需 HTTP,需提交工单申请白名单,在 LAS 服务端放开策略允许。 |
URL 指向 localhost 或内网地址 | Submit 或发送时被拒绝。 | 使用公网可访问的 HTTPS 地址。 |
用户服务返回 4xx | LAS 不重试。 | 修复用户 callback 接口鉴权、路径和请求体解析逻辑。 |
用户服务处理超过 5 秒 | LAS 可能超时并重试。 | 接口快速落库返回,耗时逻辑异步处理。 |
任务完成但未收到 callback | 无通知。 | 使用 |
收到重复 callback | 同一 | 按 |