

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 亚马逊 SWF 工作流程的生命周期
<a name="swf-dev-workflow-exec-lifecycle"></a>

从工作流执行开始到完成的过程中，Amazon SWF 通过向操作者分配适当的任务（活动任务或决策任务）来与其进行交互。

下图从工作流程上所执行组件的角度显示了订单处理工作流程执行的生命周期。

![电子商务工作流程执行](http://docs.aws.amazon.com/zh_cn/amazonswf/latest/developerguide/images/ecommerce_04.png)


## 工作流程执行生命周期
<a name="workflow-execution-life-cycle"></a>

下表解释了上图中的每个任务。


****  

|   描述  |   操作、决策或事件  | 
| --- | --- | 
| 1. 工作流启动程序调用适当的 Amazon SWF 操作来启动订单的工作流执行，从而提供订单信息。 | `[StartWorkflowExecution](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_StartWorkflowExecution.html)` action。 | 
| 2. Amazon SWF 接收启动工作流执行请求，然后调度第一个决策任务。 | [WorkflowExecutionStarted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_WorkflowExecutionStartedEventAttributes.html) 事件和 [DecisionTaskScheduled](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DecisionTaskScheduledEventAttributes.html) 事件。 | 
| 3. 决策程序从 Amazon SWF 接收任务，查看历史记录，应用协调逻辑以确定之前未发生任何活动，然后做出安排 Verify Order 活动的决策，并提供活动工作线程处理任务所需的信息，最后将决策返回给 Amazon SWF。 | [PollForDecisionTask](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_PollForDecisionTask.html) 操作。[RespondDecisionTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondDecisionTaskCompleted.html) 操作和 [ScheduleActivityTask](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ScheduleActivityTaskDecisionAttributes.html) 决策。 | 
| 4. Amazon SWF 接收决策，安排 Verify Order 活动任务，并等待该活动任务完成或超时。 | `[ActivityTaskScheduled](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ActivityTaskScheduledEventAttributes.html)` 事件 | 
| 5. 能够执行 Verify Order 活动的活动工作线程接收并执行该任务，将结果返回给 Amazon SWF。 | `[PollForActivityTask](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_PollForActivityTask.html)` 操作和 `[RespondActivityTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondActivityTaskCompleted.html)` 操作。 | 
| 6. Amazon SWF 接收 Verify Order 活动的结果，将结果添加到工作流历史记录，并安排决策任务。 | `[ActivityTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ActivityTaskCompletedEventAttributes.html)` 事件和 `[DecisionTaskScheduled](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DecisionTaskScheduledEventAttributes.html)` 事件。 | 
| 7. 决策者从 Amazon SWF 接收任务，查看历史记录，应用协调逻辑，使用活动工作人员处理任务所需的信息做出安排 ChargeCreditCard活动任务的决定，然后将决策返回给 Amazon SWF。 | `[PollForDecisionTask](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_PollForDecisionTask.html)` 操作。`[RespondDecisionTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondDecisionTaskCompleted.html)` 操作，带 `[ScheduleActivityTask](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ScheduleActivityTaskDecisionAttributes.html)` 决策。 | 
| 8. Amazon SWF 收到决策，安排 ChargeCreditCard 活动任务，然后等待其完成或超时。 | `[DecisionTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DecisionTaskCompletedEventAttributes.html)` 事件和 `[ActivityTaskScheduled](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ActivityTaskScheduledEventAttributes.html)` 事件。 | 
| 9. 可以执行活动的活动工作人员接收并执行任务，然后将结果返回给 Amazon SWF。 ChargeCreditCard  | `[PollForActivityTask](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_PollForActivityTask.html)` 和 `[RespondActivityTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondActivityTaskCompleted.html)` 操作。 | 
| 10. Amazon SWF 接收 ChargeCreditCard 活动任务的结果，将其添加到工作流程历史记录中，并安排决策任务。 | `[ActivityTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ActivityTaskCompletedEventAttributes.html)` 事件和 `[DecisionTaskScheduled](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DecisionTaskScheduledEventAttributes.html)` 事件。 | 
| 11. 决策者从 Amazon SWF 接收任务，查看历史记录，应用协调逻辑，使用活动工作人员执行任务所需的信息做出安排 ShipOrder 活动任务的决定，然后将决策返回给 Amazon SWF。 | `[PollForDecisionTask](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_PollForDecisionTask.html)` 操作。`[RespondDecisionTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondDecisionTaskCompleted.html)`，带 `[ScheduleActivityTask](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ScheduleActivityTaskDecisionAttributes.html)` 决策。 | 
| 12. Amazon SWF 收到决策，安排 ShipOrder 活动任务，然后等待其完成或超时。 | `[DecisionTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DecisionTaskCompletedEventAttributes.html)` 事件和 `[ActivityTaskScheduled](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ActivityTaskScheduledEventAttributes.html)` 事件。 | 
| 13. 可以执行活动的活动工作人员接收并执行任务，然后将结果返回给 Amazon SWF。 ShipOrder  | `[PollForActivityTask](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_PollForActivityTask.html)` 操作和 `[RespondActivityTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondActivityTaskCompleted.html)` 操作。 | 
| 14. Amazon SWF 接收 ShipOrder 活动任务的结果，将其添加到工作流程历史记录中，并安排决策任务。 | `[ActivityTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ActivityTaskCompletedEventAttributes.html)` 事件和 `[DecisionTaskScheduled](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DecisionTaskScheduledEventAttributes.html)` 事件。 | 
| 15. 决策者从 Amazon SWF 接收任务，查看历史记录，应用协调逻辑，使用活动工作人员执行任务所需的信息做出安排 RecordCompletion活动任务的决定，然后将决策返回给 Amazon SWF。 | `[PollForDecisionTask](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_PollForDecisionTask.html)` 操作。`[RespondDecisionTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondDecisionTaskCompleted.html)` 操作，带 `[ScheduleActivityTask](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ScheduleActivityTaskDecisionAttributes.html)` 决策。 | 
| 16. Amazon SWF 收到决策，安排 RecordCompletion 活动任务，然后等待其完成或超时。 | `[DecisionTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DecisionTaskCompletedEventAttributes.html)` 事件和 `[ActivityTaskScheduled](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ActivityTaskScheduledEventAttributes.html)` 事件。 | 
| 17. 可以执行活动的活动工作人员接收并执行任务，然后将结果返回给 Amazon SWF。 RecordCompletion  | `[PollForActivityTask](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_PollForActivityTask.html)` 操作和 `[RespondActivityTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondActivityTaskCompleted.html)` 操作。 | 
| 18。Amazon SWF 接收 RecordCompletion 活动任务的结果，将其添加到工作流程历史记录中，并安排决策任务。 | `[ActivityTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ActivityTaskCompletedEventAttributes.html)` 事件和 `[DecisionTaskScheduled](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DecisionTaskScheduledEventAttributes.html)` 事件。 | 
| 19. 决策程序从 Amazon SWF 接收任务，检查历史记录，应用协调逻辑，做出决策以关闭工作流执行，并将决策与所有结果一起返回给 Amazon SWF。 | `[PollForDecisionTask](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_PollForDecisionTask.html)` 操作。`[RespondDecisionTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondDecisionTaskCompleted.html)` 操作，带 `[CompleteWorkflowExecution](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_CompleteWorkflowExecutionDecisionAttributes.html)` 决策。 | 
| 20。Amazon SWF 关闭工作流执行，并将历史记录归档以供将来参考。 | `[WorkflowExecutionCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_WorkflowExecutionCompletedEventAttributes.html)` event。 | 