网页:https://elsa-workflows.github.io/elsa-core/docs/concepts-workflows
工作流(Workflow)
工作流由一系列步骤组成,这些步骤称为活动(Activity)。工作流维护各种信息,例如:
- 当前正在执行哪个活动
- 设置了哪些变量
- 哪些活动阻塞了执行
一个活动完成执行后,工作流将检查其结果以及是否有其他活动与其连接。 如果是这样,则计划执行该活动。
一直进行下去,直到不再有要执行的活动,或者遇到指示停止工作流的活动。
活动(Activity)
活动是一个基本的构建块,代表工作流程中的单个可执行步骤。 活动需要实现OnExecute方法。
阻塞活动(Blocking Activity)
活动的执行有多种可能的结果,比较常用的是继续(Outcome)和暂停(Halt)。
如果返回暂停(Halt),工作流将进入“暂停”状态,并且该活动将被注册为阻塞活动。
暂停工作流(Halted Workflow)
暂停工作流被一项或多项阻塞活动所阻止,恢复的唯一方法是使用阻塞活动重新触发它。
连接(Connection)
表示两个活动之间的关联关系。工作流借此知道下一步要执行什么活动。连接包含3方面信息:
- 源(source)活动ID。
- 源结果(source outcome)名称。
- 目的(destination)活动ID。
根据活动的每个可能结果,都可以关联另一个活动。
例如,假设有一个工作流,其中包含三个活动,分别称为活动A,活动B和活动C。活动A有两个结果,分别称为完成和失败,并且我们希望将完成结果连接到活动B和失败到活动C。
这意味着我们需要以下两个连接:
连接1:
- Source:
Activity A
- Outcome:
Done
- Destination:
Activity B
连接2:
- Source:
Activity A
- Outcome:
Failed
- Destination:
Activity C
如下示意图:
- 活动A的完成结果。
- 活动A的失败结果。
- 活动A和活动B之间的连接。
- 活动A和活动C之间的连接。