本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon SWF 任务
Amazon SWF 通过为活动工作线程和决策程序提供工作(称为“任务”)来与它们交互。Amazon SWF 中有三种类型的任务:
-
活动任务 – 活动任务指示活动工作线程执行其功能,如检查库存或信用卡计费。活动任务中包含活动工作程序执行其功能需要的所有信息。
-
Lambda 任务 – Lambda 任务与活动任务类似,但它执行 Lambda 函数而不是传统的 Amazon SWF 活动。有关如何定义 Lambda 任务的更多信息,请参阅 AWS Lambda 任务。
-
决策任务 – 决策任务向决策程序告知工作流执行状态已更改,以便决策程序确定下一个需要执行的活动。决策任务包含当前工作流程历史。
Amazon SWF 会在工作流启动时以及工作流状态发生变化时(如活动任务完成时)调度决策任务。每个决策任务中都包含整个工作流程执行历史标有页码的视图。决策程序会分析工作流执行历史,并向 Amazon SWF 回应一组决策,这些决策指定了工作流执行中接下来应完成的操作。实质上,每个决策任务都为决策程序提供了评估工作流以及向 Amazon SWF 提供指示的机会。
为确保处理的决策没有冲突,Amazon SWF 会将每个决策任务分配给一个决策程序,且一次只允许一个决策任务在工作流执行中处于活动状态。
下表显示的是与工作流程相关的不同构建与决策程序之间的关系。
逻辑设计 |
注册为 |
执行人 |
接收和执行 |
生成 |
---|---|---|---|---|
工作流程 |
工作流类型 |
决策程序 |
决策任务 |
决策 |
活动工作线程完成活动任务后,会向 Amazon SWF 报告该任务已经完成,并包括生成的任何相关结果。Amazon SWF 会使用一个表示任务已完成的事件来更新工作流执行历史记录,然后调度一个决策任务,以将更新的历史记录传输给决策程序。
Amazon SWF 会将每个活动任务分配给一个活动工作线程。一旦任务分配后,其他活动工作程序就不能认领或执行该任务。
下图所示为与活动相关的不同构建之间的关系。
逻辑设计 |
注册为 |
执行人 |
接收和执行 |
生成 |
---|---|---|---|---|
活动 |
活动类型 |
活动工作程序 |
个活动任务 |
结果数据 |