本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
變更決策者程式碼:版本控制和功能標記
本節顯示如何使用兩種方法避免對決策者進行回溯不相容變更:
版本控制提供基本解決方案。
含功能標記的版本控制是以版本控制解決方案為基礎:未介紹工作流程的新版本,而且不需要推送新程式碼來更新版本。
在您嘗試這些解決方案之前,請熟讀「範例藍本」小節,其中說明回溯不相容決策者變更的原因和影響。
重播程序和程式碼變更
當 a Java 決策程序工作者執行決策任務時,它必須先重建執行的當前狀態,然後才能向其添加步驟。AWS Flow Framework決策者使用稱為「重播」的程序來執行這項作業。
重播程序會從頭重新執行決策者程式碼,同時瀏覽已發生事件的歷史記錄。瀏覽事件歷史記錄可允許框架對訊號或任務完成做出反應,並解鎖程式碼中的 Promise
物件。
當框架執行決策程序代碼時,它會通過遞增計數器為每個計劃任務(活動,Lambda 函數,計時器,子工作流程或傳出信號)分配一個 ID。架構會將此識別碼傳達給 Amazon SWF,並將 ID 新增至歷程記錄事件,例如ActivityTaskCompleted
.
為使重播程序成功,確定決策者程式碼十分重要,以及針對每個工作流程執行中的每個決策,依相同順序排定相同任務。如果您未遵守此需求,則框架可能會無法比對 ActivityTaskCompleted
事件中的 ID 與現有 Promise
物件。