You need to enable JavaScript to run this app.
导航
开启异步任务
最近更新时间:2024.10.29 19:36:31首次发布时间:2024.08.02 14:17:08

异步任务主要用于支持长任务、重计算场景。函数服务提供 Webserver 模式非 Webserver 模式 的异步任务。两者的主要区别在于业务侧是否需要基于一个 Webserver 来处理请求,在业务场景上并无明显差异。本文为您介绍如何开启这两种模式的异步任务。

前提条件

已在本地完成代码开发,具体请参见 Native 运行时。其中,开发方法章节,Webserver 模式请参照 开发方式(Web 应用)章节,非 Webserver 模式请参照 开发方法(任务) 章节。

使用限制

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

  • 不支持切换异步任务的 Webserver 模式/非 Webserver 模式。

  • 如果您的任务 QPS 较高,建议开启 单实例多并发 配置,或者提高当前函数的 实例数上限 配置。

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

  • 当前支持的任务执行时长范围为 10 s ~ 3 h。请根据业务实际需要设置合理的超时时间。

  • 当任务超时/用户主动终止(Terminate)任务时,veFaaS 的表现根据以下情况略有不同:

    • 对于 Webserver 模式:
      • 如果未开启单实例多并发,veFaaS 会终止请求并重启业务(Webserver)进程。
      • 如果开启单实例多并发,veFaaS 仅取消(Cancel)对应的请求。

        注意

        请确保在业务逻辑中正确处理取消信号,例如监听 Context 取消信号并终止业务逻辑执行。否则,您的业务逻辑可能会在请求被取消后继续执行,从而导致资源浪费或任务未按预期停止。

    • 对于 非 Webserver 模式,veFaaS 会终止相应的任务进程。
  • 任务执行状态最长可保存 24 h。

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

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

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

操作步骤

  1. 创建异步任务函数。

说明

推荐启用日志功能,否则无法查询历史任务的执行日志。

  1. 将函数 发布 至线上。

后续操作

提交任务,通过异步模式调用函数。提交任务、终止任务等详情可参见 任务管理