亞馬遜workflow規(guī)則!
亞馬遜發(fā)布了一份白皮書和代碼示例,其中包含亞馬遜簡(jiǎn)單工作流服務(wù)手冊(cè)。
Amazon Simple workflow service(SWF)是指:用于創(chuàng)建可擴(kuò)展且靈活的應(yīng)用程序的工作流服務(wù)。
無論是金融或保險(xiǎn)應(yīng)用程序中的業(yè)務(wù)流程自動(dòng)化、構(gòu)建復(fù)雜的數(shù)據(jù)分析應(yīng)用程序,還是管理云基礎(chǔ)設(shè)施的服務(wù),Amazon SWF都可以可靠地協(xié)調(diào)應(yīng)用程序中的每個(gè)處理步驟。
SWF的最大優(yōu)勢(shì)在于它是一種完全管理的服務(wù)。
用戶無需在硬件或管理和維護(hù)方面進(jìn)行任何額外投資,也就是說,無需進(jìn)行調(diào)優(yōu)、修補(bǔ)或升級(jí)。
它提供了一個(gè)簡(jiǎn)單的API,并允許在EC2或任何聯(lián)網(wǎng)計(jì)算機(jī)上執(zhí)行工作流步驟。
Swf是基于輪詢實(shí)現(xiàn)的,因此內(nèi)部(企業(yè)內(nèi)部)運(yùn)行的程序可以輪詢Swf以獲得新任務(wù)。
最后,AWS管理控制臺(tái)還可以提供工作流當(dāng)前狀態(tài)和執(zhí)行歷史的詳細(xì)報(bào)告。
SWF的實(shí)現(xiàn)需要向新的/現(xiàn)有的應(yīng)用程序中添加決策代碼,該代碼通過指定工作順序、分時(shí)和故障條件來定義工作流的協(xié)作邏輯。
此外,還需要實(shí)現(xiàn)活動(dòng),即用于執(zhí)行工作流每個(gè)步驟的組件。
決策程序和活動(dòng)形成一個(gè)工作流。
一旦決策程序和活動(dòng)到位,SWF服務(wù)代表將代表應(yīng)用程序協(xié)調(diào)所有工作。
盡管AWS SWF具有這些優(yōu)勢(shì),但由于缺乏實(shí)施方面的示例和最佳實(shí)踐,構(gòu)建SWF應(yīng)用程序并不容易。
亞馬遜的新白皮書填補(bǔ)了這一空白。
白皮書提供了大量工作流模式的實(shí)現(xiàn)示例,并提供了實(shí)現(xiàn)這些模式的代碼。
白皮書介紹了有關(guān)以下模式和實(shí)現(xiàn)的信息:重復(fù)執(zhí)行一項(xiàng)活動(dòng),包括:重復(fù)執(zhí)行一項(xiàng)活動(dòng)指定次數(shù);以指定次數(shù)遞歸執(zhí)行異步活動(dòng);滿足條件時(shí)遞歸執(zhí)行異步活動(dòng)多個(gè)活動(dòng)的同步執(zhí)行,包括:固定數(shù)量活動(dòng)的分支聚合;動(dòng)態(tài)確定活動(dòng)數(shù)量的分支聚合;拆分多個(gè)活動(dòng)并使用第一個(gè)完成的活動(dòng)的執(zhí)行結(jié)果工作流邏輯的條件執(zhí)行包括:基于條件執(zhí)行多個(gè)活動(dòng)之一;根據(jù)條件在較大的組中執(zhí)行多項(xiàng)活動(dòng)手動(dòng)完成活動(dòng)任務(wù):手動(dòng)執(zhí)行活動(dòng)異步執(zhí)行異常處理:處理異步代碼(如活動(dòng))產(chǎn)生的異常,通過try/catch/finally清理資源;處理由其他異步代碼調(diào)用其他異步代碼引起的異常重試無法執(zhí)行的異步代碼:重試某個(gè)活動(dòng)直到成功,或重試一定次數(shù);注釋一個(gè)活動(dòng),使框架可以使用時(shí)間增量重試策略自動(dòng)重試,即每個(gè)重試間隔在達(dá)到指定值后增加并停止;retrydecorator類實(shí)現(xiàn)時(shí)間增量重試,即在運(yùn)行時(shí)指定重試策略或根據(jù)需要修改;索引重試通過asyncretryingexecution類實(shí)現(xiàn),也就是說,它允許運(yùn)行時(shí)指定重試策略。
此外,白皮書還展示了在運(yùn)行方法的實(shí)現(xiàn)中使用asyncrunnable抽象,即asyncretryingexecution每次重試時(shí)都需要執(zhí)行活動(dòng);實(shí)現(xiàn)自定義重試策略工作流的信號(hào)傳輸:實(shí)現(xiàn)在執(zhí)行前等待某一信號(hào)一定時(shí)間的工作流。
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。