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

通过控制台管理任务

在创建函数时创建异步任务

  1. 登录函数计算控制台
  2. 在左侧导航栏,单击任务
  3. 在顶部菜单栏,选择地域。
  4. 任务处理函数页面,单击创建函数
  5. 创建函数页面,创建函数并配置触发器,然后单击创建
    说明
    • 关于创建函数的具体步骤,请参见创建函数
    • 您可以在创建函数页面创建函数的同时配置触发器,也可以待函数创建成功后,在目标函数的触发器管理页签,创建触发器。
    • 使用上述方法创建的函数将自动开启异步策略任务模式,您后续对该函数发起的异步调用请求将按照任务模式处理。
    创建完成后,在任务处理函数页面的函数名称列表显示您刚才创建的函数,如您想查看具体任务详情,可在右侧操作列单击查看任务

为已有函数开启异步任务模式

前提条件:创建函数

  1. 登录函数计算控制台
  2. 在左侧导航栏,单击服务及函数
  3. 在顶部菜单栏,选择地域。
  4. 服务列表页面,单击目标服务。
  5. 单击目标函数,在函数详情页面,单击异步配置页签。
  6. 异步配置页签的异步策略区域,单击编辑
  7. 编辑异步策略面板,任务模式选择开启

启动或停止任务

  1. 登录函数计算控制台
  2. 在左侧导航栏,单击任务
  3. 在顶部菜单栏,选择地域。
  4. 任务处理函数页面,单击目标函数。
  5. 异步任务列表页签,单击提交任务
    您也可以单击提交任务右侧的down图标,从下拉列表中选择配置任务参数,事件函数将以event的形式,HTTP函数将以HTTP参数的形式输入参数传递给函数,模拟提交任务。
    提交任务后,刷新页面,您可以看到执行中的任务。您可以按需登录实例、停止任务、重新执行任务和查看日志等。result
    说明 异步任务中,HTTP函数暂不支持重新执行任务。

调用API(SDK)管理任务

创建异步任务

调用PutFunctionAsyncInvokeConfig接口,配置异步调用模式为任务模式。将AsyncConfig配置为如下内容,完成该配置后,该函数的所有异步调用将变为任务模式。

{
  "statefulInvocation": true
}
说明 您配置异步调用模式为任务模式后,您仍然可以使用同步方式调用函数,但异步任务模式只针对异步调用生效。

开启任务模式

您可以通过调用InvokeFunction接口触发一次异步调用来启动任务模式。您可以再调用时添加HTTP请求头X-Fc-Stateful-Async-Invocation-Id来为本次调用设置任务ID,更多信息,请参见任务去重

查看任务

您提交任务后,如需查询某次执行的状态或执行记录等信息,您可以调用GetStatefulAsyncInvocation接口进行查询。

如果您需要根据关键字或条件查询符合条件的任务执行列表,您可以调用获取异步任务信息列表接口来实现。

停止任务

您提交任务后,可根据需要停止任务。您可以调用停止异步任务接口执行停止任务操作。停止任务时需要提供TaskID,此ID为您提交任务时设置的TaskID,也可以是调用获取异步任务信息列表接口查询运行中任务时,获取的ID。

异步任务的状态

针对每一次任务调用,函数计算均会记录任务的状态变更过程,并提供实时的状态查询能力。您可以通过SDK或函数计算控制台查看任务的具体状态。目前任务有如下几种状态:

执行状态 说明
已入队 异步消息已入队,等待处理。
已处理 异步消息已出队,等待触发。
执行中 调用执行中,您的实例已经开始运行任务代码。
执行成功 调用执行成功。
执行失败 调用执行失败。
已停止 您已手动停止该次任务调用。任务已成功终止。
停止中 您手动停止了该次任务,任务尝试停止中。
已过期 您给异步消息配置了存活有效期,该消息因过期已被丢弃(未触发)。
无效 您的执行因函数或服务被删除等原因处于无效状态(未触发)。
重试中 异步调用因执行错误重试中。当系统准备好重试后,您的任务将会再次变为Running状态。

您可以调用GetStatefulAsyncInvocation接口获取某次任务执行的详细信息,也可以调用获取异步任务信息列表接口过滤指定状态的任务。