You need to enable JavaScript to run this app.
导航
幂等行为说明
最近更新时间:2025.11.25 19:23:15首次发布时间:2024.02.29 18:03:34
复制全文
我的收藏
有用
有用
无用
无用

为确保在网络波动或客户端重试等场景下,同一个媒体处理任务不被重复执行,视频点播的任务提交接口(如 StartWorkflowStartExecutionCreateDramaScriptTask)支持幂等性设计。本文为您介绍媒体处理任务提交时的幂等行为、目的和条件等内容。

幂等行为

当您调用接口发起一次媒体处理请求后,系统会根据请求的关键参数组合生成一个唯一标识。如果在该任务完成前,系统收到一个具有相同标识的请求,将不会创建新任务,而是会返回与首次请求相同的结果(例如,返回同一个 RunIdTaskId)。

幂等目的

  • 防止重复处理:避免因客户端重试、网络抖动等原因导致同一个任务被多次执行。
  • 节省成本与资源:确保同一份输入源和处理逻辑只被计算一次,避免不必要的资源消耗和重复计费。

幂等触发条件

系统通过校验以下三个核心要素的组合来判断请求的唯一性。只有当一个新请求与某个历史请求在这三个要素上完全相同时,幂等性才会被触发。

  1. 输入源完全一致:对于相同的点播空间 SpaceName,请求中提供的所有输入文件信息必须完全相同。判断标准:使用相同的 Vid,或者使用相同的 DirectUrl(包括 SpaceNameFileName)。
  2. 处理操作完全一致:请求中定义的媒体处理操作必须完全一致。判断标准:
    • 对于 StartExecution 接口:指 Operation 及其所有内部参数相同。
    • 对于 StartWorkflow 接口:指工作流相同(即同一个工作流 ID 在未修改的情况下被调用)以及 Input 参数相同。
  3. 用户请求凭证相同:请求中携带的用户请求凭证 ClientToken 必须相同。这包含两种情况:
    • 两次请求均未提供 ClientToken
    • 两次请求提供了完全相同的 ClientToken

如何使用 ClientToken 控制幂等行为

场景一:防止重复执行(触发幂等)

  • 目的:因网络超时、客户端无响应等原因需要重试同一个请求时,确保任务不被重复创建。
  • 操作:在重试时,使用与第一次请求完全相同的 ClientToken
  • 示例:您发起一个画质增强任务,并设置 ClientToken"task-enhance-user123-20251125"。如果请求超时,您只需使用同一个Token 再次发起请求即可。

场景二:强制重新执行(跳过幂等)

  • 目的:希望对完全相同的视频源和操作参数,再次执行一次全新的任务。
  • 操作:必须提供一个新的、唯一的 ClientToken
  • 示例:您对 vid-abc 已经执行了一个工作流。您需要对 vid-abc 重新发起完全相同的工作流请求。此时,您必须为第二次请求提供一个新的ClientToken