本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。
使用工作物件進行非同步處理
貢獻者
建議變更
在發出設計為非同步執行的API要求之後、一律會建立工作物件並傳回呼叫者。工作會說明並固定處理要求的背景工作。視HTTP狀態代碼而定、您必須擷取工作狀態、以判斷要求是否成功。
請參閱 "API 參考" 以判斷哪些API呼叫是設計為非同步執行。
控制處理要求的方式
您可以使用「RETON_Timeout」查詢參數來控制處理非同步API呼叫的方式。使用此參數有兩種可能的結果。
- 定時器會在要求完成之前過期
-
若為有效要求、ONTAP 則將傳回202HTTP狀態代碼及工作物件。您必須擷取工作狀態、以判斷要求是否成功完成。
- 要求會在定時器過期之前完成
-
如果申請有效且在到期前成功完成、ONTAP 則會連同工作物件一起傳回200個HTTP狀態代碼。由於要求已同步完成(如200所示)、因此您不需要擷取工作狀態。
"RETON_Timeout"參數的預設值為零秒。因此、如果您不包含此參數、系統會針對有效的要求傳回202 HTTP狀態代碼。
查詢與API要求相關聯的工作物件
HTTP回應中傳回的工作物件包含數個內容。您可以在後續的API呼叫中查詢狀態內容、以判斷要求是否成功完成。工作物件永遠處於下列其中一種狀態:
- 非終端機狀態
-
-
已佇列
-
執行中
-
已暫停
-
- 終端機狀態
-
-
成功
-
故障
-
發出非同步要求的一般程序
您可以使用下列高階程序來完成非同步API呼叫。此範例假設不使用「recnute_timeout」參數、或是背景工作完成之前的時間過期。
-
發出設計為非同步執行的API呼叫。
-
接收HTTP回應202、表示已接受有效的要求。
-
從回應本文擷取工作物件的識別碼。
-
在定時迴圈內、在每個週期中執行下列步驟:
-
取得工作的目前狀態。
-
如果工作處於非終端機狀態、請再次執行迴圈。
-
-
當工作達到終端機狀態(成功、失敗)時停止。
相關資訊