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