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

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

貢獻者

有些部署API呼叫(尤其是建立或修改資源的呼叫)可能需要比其他呼叫更長的時間才能完成。以非同步方式部署這些長時間執行的要求。ONTAP Select

使用工作物件說明的非同步要求

在非同步執行 API 呼叫之後、 HTTP 回應代碼 202 表示該要求已成功驗證並接受、但尚未完成。此要求會以背景工作的形式處理、並在對用戶端的初始 HTTP 回應之後繼續執行。回應包括繫留要求的工作物件、包括其唯一識別碼。

註 您應該參閱ONTAP Select 「非同步部署」線上文件頁面、以判斷哪些API呼叫是以非同步方式運作。

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

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

  • 已佇列

  • 執行中

  • 成功

  • 故障

輪詢工作物件以偵測工作的終端機狀態時、您可以使用兩種技巧:成功或失敗:

  • 標準輪詢要求會立即傳回目前的工作狀態

  • 只有在發生下列其中一種情況時、才會傳回長輪詢要求工作狀態:

    • 狀態變更的時間比輪詢要求上提供的日期時間值還要晚

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

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

提示 您應該永遠使用長輪詢來減少部署虛擬機器上的工作負載。

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

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

  1. 發出非同步 API 呼叫。

  2. 接收 HTTP 回應 202 、表示已成功接受要求。

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

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

    1. 以長時間輪詢要求取得工作的目前狀態

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

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