最近更新时间:2023.10.30 15:25:06
首次发布时间:2023.10.30 15:25:06
异步任务是函数服务全新推出的函数运行机制,通过异步模式响应调用请求,在完成事件调度后立即返回 RequestId 结束调用操作,无需阻塞调用端资源。同时,异步任务支持追踪并保存任务各阶段的状态,提供丰富的任务控制和可观测能力。
本文为您介绍异步任务的使用场景、使用流程及使用限制。
异步任务主要适用于执行时间较长或计算密集型任务,可解决同步调用过程中持续占用调用方资源、对调用链路的稳定性要求较高等问题。具体适用场景如下:
音视频、图像处理:生成缩略图、加水印、鉴黄、转码等。
定时任务:定时拉取数据、爬虫等。
离线计算:异步进行状态刷新、离线查询等。
ETL 大体量数据处理:数据清洗、转换、分析等。
CI/CD:通过异步的方式构建镜像等。
AI 推理场景。
注意
异步任务会引入额外的系统开销,不适用于以下对时延高敏感、高 QPS 的场景:
对请求处理链路延时非常敏感,需要平均延时在百毫秒以下。
需要每秒数百次甚至更高的速率发起调用。
观测任务执行情况
支持追踪任务的执行状态,查询近 24 小时的任务执行情况,并提供丰富的监控指标与日志观测能力。
不支持切换同步/异步模式。仅支持创建函数时选择是否开启异步任务模式,函数创建后该配置将锁定,不提供修改更新操作。
不支持单实例多并发,每个函数实例只能同时处理一个异步任务。如果您的任务 QPS 较高,建议提高当前函数的实例数上限。
仅支持对系统错误进行自动重试,暂不支持用户侧的任务重试。
当前支持的任务执行时长范围为 10 s ~ 3 h。
任务执行状态最长可保存 24 h。
当前支持的事件触发类型有:API 网关触发器、Timer 触发器。
异步任务 Payload 最大支持 128 KB。
事件调用成功,返回信息只包含 RequestId。事件执行结果需要在函数代码逻辑中自行实现回调特定的 API 或者发送通知消息。