變更決策者程式碼:版本控制和功能標記 - AWS Flow Framework 對於爪哇

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

變更決策者程式碼:版本控制和功能標記

本節顯示如何使用兩種方法避免對決策者進行回溯不相容變更:

在您嘗試這些解決方案之前,請熟讀「範例藍本」小節,其中說明回溯不相容決策者變更的原因和影響。

重播程序和程式碼變更

當 a Java 決策程序工作者執行決策任務時,它必須先重建執行的當前狀態,然後才能向其添加步驟。AWS Flow Framework決策者使用稱為「重播」的程序來執行這項作業。

重播程序會從頭重新執行決策者程式碼,同時瀏覽已發生事件的歷史記錄。瀏覽事件歷史記錄可允許框架對訊號或任務完成做出反應,並解鎖程式碼中的 Promise 物件。

當框架執行決策程序代碼時,它會通過遞增計數器為每個計劃任務(活動,Lambda 函數,計時器,子工作流程或傳出信號)分配一個 ID。架構會將此識別碼傳達給 Amazon SWF,並將 ID 新增至歷程記錄事件,例如ActivityTaskCompleted.

為使重播程序成功,確定決策者程式碼十分重要,以及針對每個工作流程執行中的每個決策,依相同順序排定相同任務。如果您未遵守此需求,則框架可能會無法比對 ActivityTaskCompleted 事件中的 ID 與現有 Promise 物件。