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

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

異步任務回調(diào)

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

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


標題:阿里云服務器購買,阿里云免實名注冊

地址:http://www.pengfei-china.com/kfxw/64271.html