同步和非同步端點

Route Optimization API 公開了兩種方法:

  • OptimizeTours同步方法,可針對 OptimizeToursRequest 傳回最佳化路線。用戶端必須維持與 Route Optimization API 的連線,直到要求處理完畢並傳回 OptimizeToursResponse 或錯誤為止。
  • BatchOptimizeTours非同步方法,可接受一或多個 OptimizeToursRequest 和對應 OptimizeToursResponse 訊息的 URI,並傳回用於檢查批次完成狀況的長時間執行作業 (LRO) (RESTgRPC) 的資源名稱。OptimizeToursRequest 會在背景處理,因此用戶端只會維持與路線最佳化 API 的連線,以便提交 BatchOptimizeToursRequest 或呼叫 GetOperation 以檢查 LRO 狀態。BatchOptimizeTours 會讀取來自 Google Cloud Storage 的要求,並將回應寫入該儲存空間。

用途

OptimizeTours 可用於解決小型簡單要求,或解決時間為數分鐘或更短的請求。維持與 Route Optimization API 的長效連線,會增加在傳回解決方案前中斷連線的風險。

BatchOptimizeTours 不需要與路線最佳化 API 建立長時間連線,因此可以處理較大的請求和解決時間較長的請求。

長期執行的作業

系統會使用 GetOperation 方法從路線最佳化 API 讀取 LRO,以便檢查批次的完成狀態。LRO 包含 done 屬性,可指出是否已完成整個批次的處理作業,以及 error 欄位,用於回報處理期間發生的錯誤。如果 done 為 true,且沒有 error,代表批次已順利完成。如果有 error,表示部分或所有批次處理作業失敗。

BatchOptimizeTours 要求的典型生命週期如下:

  1. BatchOptimizeToursRequest 提交至 Route Optimization API,該 API 會傳回 LRO 的資源名稱。
  2. 使用傳回的 LRO 資源名稱輪詢 GetOperation,直到 LRO 回應中出現 doneerror 屬性為止。
  3. 如果 done 為 true 且沒有錯誤,請從 BatchOptimizeTours 要求中指定的 Google Cloud Storage URI 讀取 OptimizeToursResponses。如果有 error,請檢查錯誤,並在 Google Cloud Storage 中相應更新 OptimizeToursRequest,然後視觀察到的錯誤而適當重試。

您可以透過多種方式傳送 OptimizeToursBatchOptimizeTours 要求,例如透過指令列或使用用戶端程式庫。

下一篇:發出 API 要求