在亞馬遜之前發(fā)布的一份白皮書和代碼示例中,其中包含了對Amazon Simple Workflow Service(亞馬遜簡單工作流服務手冊)的進一步改進措施。
接下來就給大家介紹一下亞馬遜改進后的SWF。
Amazon Simple Workflow Service(SWF)是:面向創(chuàng)造可擴展、彈性應用的工作流服務。
也就是說不論是在金融或者保險應用中的業(yè)務流程自動化,構(gòu)建復雜的數(shù)據(jù)分析應用,還是管理云基礎(chǔ)設施的服務中,亞馬遜SWF能有效地協(xié)調(diào)應用中的每個處理步驟:1)編寫activity workers來實現(xiàn)工作流中的執(zhí)行步驟;2)編寫decider來實現(xiàn)工作流中的協(xié)調(diào)邏輯;3)在亞馬遜SWF中注冊activities和workflow,這個步驟可以通過編程或者亞馬遜控制臺來完成;4)啟動activities workers和deciders;5)啟動工作流的一個或者多個執(zhí)行。
每一個執(zhí)行都是獨立的,可以為每一個執(zhí)行提供不同的輸入數(shù)據(jù);6)在亞馬遜的控制臺上查看工作流的執(zhí)行情況。
可以過濾或者查看正在運行的以及已完成的execution。
但是由于缺乏示例和有關(guān)實現(xiàn)的最佳實踐,搭建SWF應用并不是件容易的事。
所以亞馬遜新發(fā)布的白皮書對SWF做了進一步改進。
覆蓋了如下幾類模式和實現(xiàn)的相關(guān)信息:1)反復執(zhí)行某一活動,包括:指定次數(shù)循環(huán)重復執(zhí)行某一活動;指定次數(shù)遞歸執(zhí)行異步活動;在條件滿足的情況下遞歸執(zhí)行異步活動。
2)工作流邏輯的條件執(zhí)行,包括:基于條件執(zhí)行多個活動中的一個活動;基于條件執(zhí)行一個更大群體中的多個活動。
3)異步執(zhí)行的異常處理:處理異步代碼(如活動)產(chǎn)生的異常以及通過try/catch/finally清理資源;處理其他異步代碼調(diào)用另一個異步代碼產(chǎn)生的異常;4)工作流的信號傳送:實現(xiàn)在執(zhí)行前等待某一信號一定時間的工作流。
另外,白皮書還展示了在實現(xiàn)run方法中AsyncRunnable抽象的用法,即在每次重試的時候AsyncRetryingExecutor都會要求執(zhí)行活動。
這份改進的SWF手冊為之后實現(xiàn)新的定制工作流提供了一個絕佳的參考和起點。
希望小編分享的內(nèi)容能讓你對亞馬遜SWF有更深入的了解。
本文內(nèi)容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。


