You need to enable JavaScript to run this app.
导航

异步任务概述

最近更新时间2023.10.30 15:25:06

首次发布时间2023.10.30 15:25:06

异步任务是函数服务全新推出的函数运行机制,通过异步模式响应调用请求,在完成事件调度后立即返回 RequestId 结束调用操作,无需阻塞调用端资源。同时,异步任务支持追踪并保存任务各阶段的状态,提供丰富的任务控制和可观测能力。

本文为您介绍异步任务的使用场景、使用流程及使用限制。

说明

邀测·申请试用】异步任务当前为邀测功能,如需体验,请 提交工单 申请或联系客户经理申请。

使用场景

异步任务主要适用于执行时间较长或计算密集型任务,可解决同步调用过程中持续占用调用方资源、对调用链路的稳定性要求较高等问题。具体适用场景如下:

  • 音视频、图像处理:生成缩略图、加水印、鉴黄、转码等。

  • 定时任务:定时拉取数据、爬虫等。

  • 离线计算:异步进行状态刷新、离线查询等。

  • ETL 大体量数据处理:数据清洗、转换、分析等。

  • CI/CD:通过异步的方式构建镜像等。

  • AI 推理场景。

注意

异步任务会引入额外的系统开销,不适用于以下对时延高敏感、高 QPS 的场景:

  • 对请求处理链路延时非常敏感,需要平均延时在百毫秒以下。

  • 需要每秒数百次甚至更高的速率发起调用。

使用流程

  1. 开启异步任务

    1. 在创建函数时开启异步任务模式。
    2. 将函数和配置发布至线上。
  2. 提交任务

    • 支持配置触发器,通过 HTTP(S) 调用或其他事件触发的方式提交任务。
    • 支持通过函数测试,模拟触发器触发任务。
  3. 观测任务执行情况
      支持追踪任务的执行状态,查询近 24 小时的任务执行情况,并提供丰富的监控指标与日志观测能力。

使用限制

  • 不支持切换同步/异步模式。仅支持创建函数时选择是否开启异步任务模式,函数创建后该配置将锁定,不提供修改更新操作。

  • 不支持单实例多并发,每个函数实例只能同时处理一个异步任务。如果您的任务 QPS 较高,建议提高当前函数的实例数上限。

  • 仅支持对系统错误进行自动重试,暂不支持用户侧的任务重试。

  • 当前支持的任务执行时长范围为 10 s ~ 3 h。

  • 任务执行状态最长可保存 24 h。

  • 当前支持的事件触发类型有:API 网关触发器、Timer 触发器。

  • 异步任务 Payload 最大支持 128 KB。

  • 事件调用成功,返回信息只包含 RequestId。事件执行结果需要在函数代码逻辑中自行实现回调特定的 API 或者发送通知消息。