本篇文章1048字,讀完約3分鐘

阿里云國(guó)際站經(jīng)銷商,主營(yíng)阿里云,騰訊云,華為云,亞馬遜aws,谷歌云gcp,微軟云az,免費(fèi)開(kāi)戶,代充值優(yōu)惠大,聯(lián)系客服飛機(jī)@jkkddd

異步任務(wù)回調(diào)

本文介紹了Serverless工作流的回調(diào)功能。相比較輪詢,使用回調(diào)有效地降低了延遲、減少了輪詢對(duì)服務(wù)器造成的不必要壓力。另外,回調(diào)功能配合隊(duì)列可以實(shí)現(xiàn)對(duì)非FC任務(wù)的編排,將Serverless工作流的編排范圍擴(kuò)展到任意類型的計(jì)算資源。
簡(jiǎn)介
長(zhǎng)時(shí)間執(zhí)行的任務(wù)通常會(huì)采用異步提交任務(wù)并返回任務(wù)標(biāo)識(shí)(ID),判斷異步任務(wù)結(jié)束的方法通常有兩種:輪詢(polling)和回調(diào)(callback),在任務(wù)狀態(tài)輪詢中我們介紹了使用輪詢來(lái)判斷任務(wù)結(jié)束。Serverless工作流的回調(diào)(callback)功能,覆蓋以下的痛點(diǎn)或場(chǎng)景:
消除輪詢周期長(zhǎng)帶來(lái)的不必要延遲。
消除大流量場(chǎng)景下高并發(fā)的輪詢?cè)斐刹槐匾姆?wù)器資源壓力和浪費(fèi)。
編排非FC Function的任務(wù),例如運(yùn)行在自建機(jī)房或ECS上的進(jìn)程。
需要人工干預(yù)的步驟,例如通知審批通過(guò)。
下圖展示了使用MNS隊(duì)列服務(wù)集成結(jié)合回調(diào)API編排自建資源,拓寬Serverless工作流的適用場(chǎng)景。
回調(diào)使用詳解
在Task步驟中指定pattern: waitForCallback,如下圖狀態(tài)機(jī)所示:該步驟會(huì)在提交resourceArn指定的任務(wù)后(如FC invocation)該步驟會(huì)將一個(gè)taskToken存入到該步驟的context對(duì)象并進(jìn)入一個(gè)暫停的狀態(tài),直到Serverless工作流收到回調(diào)或指定的任務(wù)超時(shí)。將taskToken傳入ReportTaskSucceed或ReportTaskFailed接口去回調(diào)會(huì)使得該步驟繼續(xù)執(zhí)行。
示例
該示例共分為以下3個(gè)步驟:
準(zhǔn)備Task Function
開(kāi)始工作流
回調(diào)
步驟1:準(zhǔn)備Task Function
創(chuàng)建下面一個(gè)簡(jiǎn)單的函數(shù),該函數(shù)會(huì)將輸入直接返回。
服務(wù):fnf-demo。
函數(shù):echo。
運(yùn)行環(huán)境:python2.7。
函數(shù)入口:index.handler。
步驟2:開(kāi)始工作流
創(chuàng)建流程,并開(kāi)始執(zhí)行。
流程名稱:fnf-demo-callback。
流程角色:配置一個(gè)有FC Invocation權(quán)限的角色。
步驟3:回調(diào)

使用Serverless工作流的Python SDK在本地(或其他可以運(yùn)行Python的環(huán)境)運(yùn)行callback.py腳本,將{task-token}替換為TaskSubmitted事件中的值


標(biāo)題:阿里云服務(wù)器購(gòu)買,阿里云免實(shí)名注冊(cè)

地址:http://www.tantricheartwheels.com/kfxw/64271.html