Route Optimization API 公開了兩種方法:
OptimizeTours
是同步方法,可針對OptimizeToursRequest
傳回最佳化路線。用戶端必須維持與 Route Optimization API 的連線,直到要求處理完畢並傳回OptimizeToursResponse
或錯誤為止。BatchOptimizeTours
是非同步方法,可接受一或多個OptimizeToursRequest
和對應OptimizeToursResponse
訊息的 URI,並傳回用於檢查批次完成狀況的長時間執行作業 (LRO) (REST、gRPC) 的資源名稱。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
要求的典型生命週期如下:
- 將
BatchOptimizeToursRequest
提交至 Route Optimization API,該 API 會傳回 LRO 的資源名稱。 - 使用傳回的 LRO 資源名稱輪詢
GetOperation
,直到 LRO 回應中出現done
或error
屬性為止。 - 如果
done
為 true 且沒有錯誤,請從BatchOptimizeTours
要求中指定的 Google Cloud Storage URI 讀取OptimizeToursResponses
。如果有error
,請檢查錯誤,並在 Google Cloud Storage 中相應更新OptimizeToursRequest
,然後視觀察到的錯誤而適當重試。
您可以透過多種方式傳送 OptimizeTours
和 BatchOptimizeTours
要求,例如透過指令列或使用用戶端程式庫。