本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

使用工作物件進行非同步處理

在發出設計為非同步執行的API要求之後、一律會建立工作物件並傳回呼叫者。工作會說明並固定處理要求的背景工作。視HTTP狀態代碼而定、您必須擷取工作狀態、以判斷要求是否成功。

請參閱 "API 參考" 以判斷哪些API呼叫是設計為非同步執行。

控制處理要求的方式

您可以使用「RETON_Timeout」查詢參數來控制處理非同步API呼叫的方式。使用此參數有兩種可能的結果。

定時器會在要求完成之前過期

若為有效要求、ONTAP 則將傳回202HTTP狀態代碼及工作物件。您必須擷取工作狀態、以判斷要求是否成功完成。

要求會在定時器過期之前完成

如果申請有效且在到期前成功完成、ONTAP 則會連同工作物件一起傳回200個HTTP狀態代碼。由於要求已同步完成(如200所示)、因此您不需要擷取工作狀態。

附註 "RETON_Timeout"參數的預設值為零秒。因此、如果您不包含此參數、系統會針對有效的要求傳回202 HTTP狀態代碼。

查詢與API要求相關聯的工作物件

HTTP回應中傳回的工作物件包含數個內容。您可以在後續的API呼叫中查詢狀態內容、以判斷要求是否成功完成。工作物件永遠處於下列其中一種狀態:

非終端機狀態
  • 已佇列

  • 執行中

  • 已暫停

終端機狀態
  • 成功

  • 故障

發出非同步要求的一般程序

您可以使用下列高階程序來完成非同步API呼叫。此範例假設不使用「recnute_timeout」參數、或是背景工作完成之前的時間過期。

  1. 發出設計為非同步執行的API呼叫。

  2. 接收HTTP回應202、表示已接受有效的要求。

  3. 從回應本文擷取工作物件的識別碼。

  4. 在定時迴圈內、在每個週期中執行下列步驟:

    1. 取得工作的目前狀態。

    2. 如果工作處於非終端機狀態、請再次執行迴圈。

  5. 當工作達到終端機狀態(成功、失敗)時停止。