本文介绍关于执行(Execution)的基本内容,包括执行的基本概念、执行属性和执行历史事件三部分。

基本概念

执行(Execution)是对流程(Flow)的一次具体运行。在创建流程后,您可以多次执行流程,通常每次执行(Execution)有不同的输入。例如用户每次下单会执行一次订单管理流程,执行的输入是订单信息。

执行属性

下文列出了执行的属性,除了 ExecutionName 和 Input 是开始执行输入外,其他是执行的输出信息。

  • ExecutionName:执行的名称。在同一流程内唯一,并符合如下约束:
    • 由英文字符(a-z)或(A-Z)、数字(0-9)、下划线(_)和中划线(-)组成。
    • 首字母必须为英文字母(a-z)、(A-Z)或下划线(_)。
    • 大小写敏感。
    • 长度为 1-128 字符。
  • Input:执行的输入。如提供,则必须是 JSON 对象格式。
  • Output:执行的输出和 JSON 对象格式。
  • FlowDefinition:流程定义。具体介绍请参见基本介绍流程定义语言。为确保流程更新不影响已经开始的执行,每个执行会保存其开始时对应的流程定义。
  • Status:执行的状态。包括 Starting、Running、Stopped、Succeeded、Failed 和 TimedOut。
  • StartedTime:执行开始时间。
  • StoppedTime:执行结束时间。

执行历史事件

通常一个流程会包含多个步骤,在执行时,每个步骤的执行会产生一些事件。这些事件详细的记录了步骤的执行状态。您可以通过这些事件了解一个流程当前的执行步骤、输入、输出、流程执行持续时长和失败原因等信息。同时,Serverless 工作流服务利用这些状态数据跟踪流程执行,确保系统的高可用性。

下文列出了执行事件(Event)的属性,其中事件详情(EventDetail) 是一个 JSON 对象格式的字符串,不同事件类型(Type)的事件详情内容可能会有所不同。

  • StepName:步骤名称。对应流程定义语言中的步骤名称。
  • Type:事件类型。
  • EventDetail:事件详情。
  • Time:事件发生时间。
  • EventId:事件 ID。
  • ScheduleEventId:触发当前事件的事件 ID。