You need to enable JavaScript to run this app.
导航
异步任务概述
最近更新时间:2024.08.02 14:17:07首次发布时间:2023.10.30 15:25:06

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

本文为您介绍异步任务支持的运行模式、使用场景和使用流程。

模式选择

函数服务支持用户以 Webserver 模式非 Webserver 模式 执行异步任务,两种模式只在业务运行模式上有差异,适用的业务场景并无明显差别,您可根据实际需要进行选择。

  • Webserver 模式:与常规同步模式相同,用户在业务侧提供一个 HTTP Server 用以处理请求,并在请求执行结束后返回响应。其不同点在于:veFaaS 在接收到客户端的任务提交请求后,不会同步等待 HTTP Server 响应,而是立刻向客户端返回 202 Accepted。随后在后台异步调度该请求,将其发送给 HTTP Server,等待响应,并依据响应的状态码判定任务是否执行成功(状态码大于等于 400 则认为任务失败)。
  • 非 Webserver 模式:执行一次性的任务脚本,任务完成后进程主动退出,或者脚本出现异常而退出。veFaaS 依据脚本的退出状态来判别任务是否成功(退出状态码 0 代表成功,其它为失败)。特别地,在任务超时场景下,veFaaS 会强制终止进程,并标记任务为失败状态。

使用场景

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

  • 音视频、图像处理:生成缩略图、加水印、鉴黄、转码等。
  • 定时任务:定时拉取数据、爬虫等。
  • 离线计算:异步进行状态刷新、离线查询等。
  • ETL 大体量数据处理:数据清洗、转换、分析等。
  • CI/CD:通过异步的方式构建镜像等。
  • AI 推理场景:文生图、文生视频等。
  • AI 训练场景:数据收集、数据预处理、特征工程、模型训练等。
  • 高性能计算场景:工业仿真等。

注意

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

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

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

使用流程

  1. 开启异步任务

    1. 创建异步任务函数。
    2. 将函数和配置发布至线上。
  2. 提交任务

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