此產品有較新版本可以使用。
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。
使用工作物件進行非同步處理
貢獻者
建議變更
有些部署API呼叫(尤其是建立或修改資源的呼叫)可能需要比其他呼叫更長的時間才能完成。以非同步方式部署這些長時間執行的要求。ONTAP Select
使用工作物件說明的非同步要求
在非同步執行 API 呼叫之後、 HTTP 回應代碼 202 表示該要求已成功驗證並接受、但尚未完成。此要求會以背景工作的形式處理、並在對用戶端的初始 HTTP 回應之後繼續執行。回應包括繫留要求的工作物件、包括其唯一識別碼。
您應該參閱ONTAP Select 「非同步部署」線上文件頁面、以判斷哪些API呼叫是以非同步方式運作。 |
查詢與 API 要求相關的工作物件
HTTP回應中傳回的工作物件包含數個內容。您可以查詢狀態內容、以判斷要求是否成功完成。工作物件可以處於下列其中一種狀態:
-
已佇列
-
執行中
-
成功
-
故障
輪詢工作物件以偵測工作的終端機狀態時、您可以使用兩種技巧:成功或失敗:
-
標準輪詢要求
目前工作狀態會立即傳回 -
長輪詢要求
只有在發生下列其中一種情況時、才會傳回工作狀態:-
狀態變更的時間比輪詢要求上提供的日期時間值還要晚
-
逾時值已過期(1至120秒)
-
標準輪詢和長輪詢使用相同的API呼叫來查詢工作物件。不過、長輪詢要求包含兩個查詢參數: poll_timeout
和 last_modified
。
您應該永遠使用長輪詢來減少部署虛擬機器上的工作負載。 |
發出非同步要求的一般程序
您可以使用下列高階程序來完成非同步 API 呼叫:
-
發出非同步 API 呼叫。
-
接收 HTTP 回應 202 、表示已成功接受要求。
-
從回應本文擷取工作物件的識別碼。
-
在迴圈內、在每個週期中執行下列步驟:
-
以長時間輪詢要求取得工作的目前狀態
-
如果工作處於非終端機狀態(佇列中、執行中)、請再次執行迴圈。
-
-
當工作達到終端機狀態(成功、失敗)時停止。