为AstroZero工作流添加事件类图元
事件类图元用来处理与工作流相关的内部(开始、结束、终止、捕获时间)或外部事件(抛出信号、捕获信号),事件总是画成一个圆圈。
背景信息
根据图元的不同使用场景,工作流图元可以分为以下三类:
- 事件(Events):驱动流程流转的事件图元,用来表明工作流的生命周期中发生的事件,例如开始、捕获信号等。
- 网关(Gateways):根据条件,分发的网关图元。网关用来控制流程的执行流向,可理解为决策、判断。
- 活动(Activities):提供用户交互或系统调用的图元,是工作流的核心图元,可理解为节点或步骤,例如调用事件、用户需要做的任务。
![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301140.png)
开始
常规的开始事件,开始类型分以下两种:
- 自定义:不指定事件的起因,即不需要指定触发条件,主要用于接口调用进行启动。
- 表单:使用表单或者页面启动工作流。选择该项时,需要配置具体的表单、标准页面或高级页面。
![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301148.png)
其中:
:为图元的基本信息配置界面,包括“标签”、“名称”和“描述”。
:为全局上下文,主要用于创建工作流中需要使用的变量、公式以及结构体变量等。
抛出信号
当工作流执行到达“抛出信号”事件时,引擎向系统内部发出一个事件,事件发出后流程沿后续路线继续执行。抛出的信号,可以被“捕获信号”订阅处理。
使用该图元时,需要配置抛出的具体事件,并需要在“输入参数”配置事件参数。
![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301144.png)
- 事件:请选择待发送的事件。
- 分区字段:从事件中选择一个自定义参数用作分区字段,根据该字段值进行路由,相同的值将路由到同一个分区。如果不指定,则默认随机路由到不同分区,从而提升并发处理性能。
- 目标/源:配置事件的数据,即为事件自定义参数赋值,将“源”取值赋值到“目标”中。
捕获时间
当工作流执行到达“捕获时间”事件时中断在这里,引擎会创建一个定时器,当定时器触发后事件结束,流程沿后续路线继续执行。
使用该图元时,需要配置基准时间、偏移时间和偏移单位。下图示例为在基准时间基础上,超时一天后沿后续路线继续执行工作流。
![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141248.png)
捕获信号
当工作流执行到达“捕获信号”事件时中断在这里,等待抛出信号事件或者API发出匹配的信号后结束,流程沿后续路线继续执行。
使用该图元时,需要配置需要捕获的具体事件、捕获条件以及输出参数。
![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000002095644946.png)
结束
表示流程或分支的自然结束,什么都不做。当流程有多个分支路线在执行时,最末尾一个分支自然结束后,流程实例结束。
终止
表示流程被强制终止,什么都不做。当流程有多个分支路线在执行时,这些分支上的活动任务都被终止。