子工作流程 - Amazon Simple Workflow Service

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

子工作流程

使用子工作流程,能夠將複雜工作流程細分為較小、更好管理且能重複使用的元件。子工作流程是另一個 (父) 工作流程執行所啟動的工作流程執行。若要啟動子工作流程,父工作流程的決策者會使用 StartChildWorkflowExecution 決策。透過歷史記錄,子工作流程可以使用利用此決策所指定的輸入資料。

StartChildWorkflowExecution決定的屬性也指定了子政策,也就是說,Amazon SWF 應如何處理父工作流程執行在子工作流程執行之前終止的情況。有三個可能值:

  • 終止:Amazon SWF 將終止子項執行。

  • 請求 _ 取消:Amazon SWF 會嘗試透過在子系的工作流程執行歷程記錄中放置WorkflowExecutionCancelRequested事件來取消子項執行。

  • 放棄:Amazon SWF 不會採取任何動作;子項執行將繼續執行。

子工作流程執行在啟動之後,會像一般執行一樣運作。完成時,Amazon SWF 會在父工作流程執行的工作流程歷程記錄中記錄完成及其結果。子工作流程範例如下:

  • 不同網站中工作流程所使用的信用卡處理子工作流程

  • 驗證客戶電子郵件地址、檢查選擇退出清單、傳送電子郵件以及驗證其未遭退信或失敗的電子郵件子工作流程。

  • 可結合連線、設定、交易和驗證的資料庫儲存與擷取子工作流程。

  • 可結合建置、封裝和驗證的來源碼編譯子工作流程。

在電子商務範例中,您可能想要將「使用信用卡付費」活動設為子工作流程。若要執行此作業,您可以註冊新的「驗證客戶」工作流程、註冊「驗證客戶地址」和「檢查詐欺資料庫」活動,以及定義任務的協調性邏輯。然後,「客戶訂單」工作流程中的決策者排定可指定此工作流程類型的 StartChildWorkflowExecution 決策,藉以啟動「驗證客戶」子工作流程。

下圖顯示包含新「驗證客戶」子工作流程的客戶訂單工作流程,包含檢查客戶地址、檢查詐欺資料庫,以及使用信用卡付費。

子工作流程圖表

多個工作流程可以使用相同的工作流程類型來建立子工作流程執行。例如,「驗證客戶」子工作流程也可以用於組織的其他部分。子工作流程的事件是包含在自己的工作流程歷史記錄中,而不是包含在父工作流程歷史記錄中。

因為子工作流程只是決策者啟動的工作流程執行,所以啟動方式也如同一般獨立工作流程執行。