

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Amazon SWF 工作流程的生命週期
<a name="swf-dev-workflow-exec-lifecycle"></a>

從工作流程執行開始到完成，Amazon SWF 會透過指派適當的任務來與演員互動，包括活動任務或決策任務。

下圖是從處理訂單處理工作流程執行的元件觀點，顯示該執行的生命週期。

![電子商務工作流程執行](http://docs.aws.amazon.com/zh_tw/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)` 動作。 | 
| 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 接收任務、檢閱歷史記錄、套用協調邏輯以判斷先前未發生的活動、決定使用活動工作者處理任務所需的資訊來排程驗證訂單活動，並將決策傳回給 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 會收到決策、排程驗證訂單活動任務，並等待活動任務完成或逾時。 | `[ActivityTaskScheduled](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ActivityTaskScheduledEventAttributes.html)` 事件 | 
| 5. 可執行驗證訂單活動的活動工作者會收到任務、執行任務，並將結果傳回給 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 會收到驗證訂單活動的結果，將它們新增至工作流程歷史記錄，並排程決策任務。 | `[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. 可執行 ChargeCreditCard 活動的活動工作者會收到任務、執行任務，並將結果傳回給 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)` 動作。 | 
| 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. 可執行 ShipOrder 活動的活動工作者會收到任務、執行任務，並將結果傳回給 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)` 動作。 | 
| 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. 可執行 RecordCompletion 活動的活動工作者會收到任務、執行任務，並將結果傳回給 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)` 動作。 | 
| 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)` 事件。 | 