Route Optimization API 提供兩種方法:
OptimizeTours
是一種同步方法,可傳回最佳化路徑以回應OptimizeToursRequest
。在處理要求並傳回OptimizeToursResponse
或錯誤之前,用戶端必須維持與 Route Optimization API 的公開連線。BatchOptimizeTours
是一種非同步方法,可接受一或多個OptimizeToursRequest
及對應OptimizeToursResponse
訊息的 URI,並傳回用於檢查批次完成的長時間執行作業 (LRO) (REST、gRPC) 的資源名稱。OptimizeToursRequest
會在背景進行處理,因此用戶端只會維持與 Route Optimization API 狀態的公開連線,時間只足以提交 {RO 狀態的BatchOptimizeToursRequest
/10} 或 10 狀態。GetOperation
BatchOptimizeTours
讀取要求,並將回應寫入 Google Cloud Storage。
應用實例
OptimizeTours
很適合用於解決小型和簡單的要求,或是解決時間不到幾分鐘的要求。維持與 Route Optimization API 的長效連線會在傳回解決方案之前,增加中斷風險。
BatchOptimizeTours
不需要與 Route Optimization API 保持長期連線,因此能在解決時間較長的情況下處理較大型的要求和要求。
長期執行的作業
LRO 會使用 GetOperation
方法從 Route Optimization API 讀取,藉此檢查批次的完成狀態。LRO 包含的 done
屬性,表示整個批次的處理程序是否完成,而 error
欄位會回報處理期間發生的錯誤。如果 done
為 true 且沒有 error
,表示批次已順利完成。出現 error
表示部分或所有批次處理失敗。
BatchOptimizeTours
要求的典型生命週期如下:
- 將
BatchOptimizeToursRequest
提交到 Route Optimization API,用來傳回 LRO 的資源名稱。 - 使用傳回的 LRO 資源名稱輪詢
GetOperation
,直到 LRO 回應中出現done
或error
屬性為止。 - 如果
done
為 true 且沒有錯誤,請從BatchOptimizeTours
要求中指定的 Google Cloud Storage URI 讀取OptimizeToursResponses
。如果有error
,請檢查錯誤,並據此更新 Google Cloud Storage 中的OptimizeToursRequest
,然後根據觀察到的錯誤視情況重試。
您可以透過指令列或用戶端程式庫,以多種方式傳送 OptimizeTours
和 BatchOptimizeTours
要求。