赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 函数计算 FC 2.0
  4. 操作指南
  5. 函数调用
  6. 异步任务
  7. 任务去重

任务去重

  • 异步任务
  • 发布于 2025-04-16
  • 0 次阅读
文档编辑
文档编辑

函数计算支持为每次提交的任务设定全局唯一的ID。当出现不可知的结果时,例如异步调用提交任务接口超时,您可以通过提交相同ID的任务进行重试,任务去重功能可以避免任务的重复执行。本文介绍如何通过设置TaskID来实现任务去重。

功能原理

函数计算提供TaskID这一任务概念,该ID全局唯一。建议您在每次提交任务时指定该ID,并在出现超时等情况下进行重试。函数计算会对您重复提交的任务进行校验,当有相同ID进入系统时,该次请求将认为是重复提交而被拒绝,并返回错误409。

说明

函数计算还提供了RequestID这一概念,如果您设置了RequestID但未设置TaskID,系统将自动设置TaskID为RequestID。使用异步任务时,建议您设置TaskID,无需设置RequestID。

设置TaskID

您可以在函数计算控制台、使用Serverless Devs或调用API提交一次任务执行。如果需要设置TaskID,请在触发函数执行时添加HTTP请求头X-Fc-Stateful-Async-Invocation-Id。

以Go SDK为例,触发任务执行时设置TaskID的代码示例如下:

import fc "github.com/aliyun/fc-go-sdk"

func SubmitJob() {
    invokeInput := fc.NewInvokeFunctionInput("ServiceName", "FunctionName")
    invokeInput = invokeInput.WithAsyncInvocation().WithStatefulAsyncInvocationID("TaskUUID")
    invokeOutput, err := fcClient.InvokeFunction(invokeInput)
    ...
}

相关文章

功能概览 2025-04-16 14:22

当您对函数发起异步调用时,相关请求会被持久化保存到函数计算内部队列中,然后被可靠地处理。如果您想追踪并保存异步调用各个阶段的状态,实现更丰富的任务控制和可观测能力,可以选择开启任务模式处理异步请求。本文介绍异步任务的背景信息、使用限制和常用功能。

任务管理 2025-04-16 14:22

本文介绍异步任务的状态以及如何管理异步任务,包括创建、启动、停止和查看异步任务。 通过控制台管理任务

事件触发 2025-04-16 14:22

您可以为函数配置触发器,以事件驱动的方式触发任务。所有支持异步方式触发的触发器都可以触发任务。本文介绍支持触发异步任务的触发器类型。 触发器类型

任务去重 2025-04-16 14:22

函数计算支持为每次提交的任务设定全局唯一的ID。当出现不可知的结果时,例如异步调用提交任务接口超时,您可以通过提交相同ID的任务进行重试,任务去重功能可以避免任务的重复执行。本文介绍如何通过设置TaskID来实现任务去重。

任务监控 2025-04-16 14:22

本文介绍异步任务的可观测性指标,包括任务大盘、任务执行列表和任务监控指标。 任务大盘 您可以在函数计算控制台

任务编排 2025-04-16 14:22

结合云工作流,函数的异步调用可以应用于大规模复杂场景的任务流程。您可以使用顺序、分支和并行等方式来编排

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号