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

使用ONTAP Select 的作業物件進行非同步處理

貢獻者 netapp-revathid

某些 Deploy API 呼叫(尤其是建立或修改資源的呼叫)可能需要比其他呼叫更長的時間才能完成。 ONTAPONTAP Select Deploy 會非同步處理這些長時間運行的請求。

使用 Job 物件描述的非同步請求

進行非同步運行的 API 呼叫後,HTTP 回應代碼 202 表示請求已成功驗證並接受,但尚未完成。該請求將作為後台任務處理,並在客戶端收到初始 HTTP 回應後繼續執行。回應中包含錨定該請求的 Job 物件及其唯一識別碼。

註 您應該參考ONTAP Select Deploy 線上文件頁面來決定哪些 API 呼叫是非同步操作的。

查詢與 API 請求關聯的 Job 對象

HTTP 回應中傳回的 Job 物件包含多個屬性。您可以查詢 state 屬性來決定請求是否已成功完成。 Job物件可以處於以下狀態之一:

  • 排隊

  • 跑步

  • 成功

  • 失敗

輪詢 Job 物件來偵測任務的最終狀態(成功或失敗)時,可以使用兩種技術:

  • 標準輪詢請求立即返回目前作業狀態

  • 長輪詢請求僅當發生以下情況之一時才傳回作業狀態:

    • 狀態變更的時間比輪詢請求中提供的日期時間值更近

    • 超時值已過期(1 至 120 秒)

標準輪詢和長輪詢使用相同的 API 呼叫來查詢作業物件。但是,長輪詢請求包含兩個查詢參數: poll_timeout`和 `last_modified

提示 您應該始終使用長輪詢來減少 Deploy 虛擬機器上的工作負載。

發出非同步請求的一般過程

您可以使用下列進階程序來完成非同步 API 呼叫:

  1. 發出異步 API 呼叫。

  2. 收到 HTTP 回應 202,表示成功接受請求。

  3. 從回應主體中提取 Job 物件的識別碼。

  4. 在循環內,每次循環執行以下操作:

    1. 使用長輪詢請求取得作業的目前狀態

    2. 如果作業處於非終止狀態(排隊、執行),則再次執行循環。

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