Porównanie OptimizeTours i BatchOptimizeTours

Interfejs Route Optimization API udostępnia 2 metody:

  • OptimizeTours to metoda synchroniczna, która w odpowiedzi na OptimizeToursRequest zwraca zoptymalizowaną trasę. Klienty muszą utrzymywać otwarte połączenie z interfejsem Route Optimization API, dopóki żądanie nie zostanie przetworzone i nie zostanie zwrócony OptimizeToursResponse lub błąd.
  • BatchOptimizeTours to asynchroniczna metoda, która akceptuje identyfikatory URI dla co najmniej 1 komunikatu OptimizeToursRequest i odpowiadającego im komunikatu OptimizeToursResponse. Zwraca nazwę zasobu długo trwającej operacji (LRO) (REST, gRPC), która jest używana do sprawdzania zakończenia wsadu. Moduły OptimizeToursRequest są przetwarzane w tle, więc klienty utrzymują otwarte połączenia z interfejsem Route Optimization API wystarczająco długo, aby przesłać stan LRO {1/0}.BatchOptimizeToursRequestGetOperation BatchOptimizeTours odczytuje żądania z i zapisuje odpowiedzi w Google Cloud Storage.

Przykłady zastosowania

OptimizeTours to wygodny sposób na rozwiązywanie małych i prostych żądań, a także w przypadku żądań, które trwają maksymalnie kilka minut. Utrzymywanie długotrwałych połączeń z interfejsem Route Optimization API zwiększa ryzyko przerw w działaniu usługi, zanim rozwiązanie zostanie zwrócone.

BatchOptimizeTours może obsługiwać większe żądania i żądania z dłuższym czasem na rozwiązywanie, ponieważ nie wymaga długotrwałego połączenia z interfejsem Route Optimize API.

Długo trwające operacje

Jednostki LRO są odczytywane z interfejsu Route Optimization API za pomocą metody GetOperation w celu sprawdzenia stanu ukończenia wsadu. Jednostki LRO zawierają właściwość done, która wskazuje, czy przetwarzanie całego wsadu zostało zakończone, oraz pole error, które informuje o błędach napotkanych podczas przetwarzania. Jeśli done ma wartość prawda i nie ma error, wsad został ukończony. Obecność error oznacza, że przetwarzanie części lub całego wsadu nie powiodło się.

Typowy cykl życia żądania BatchOptimizeTours wygląda tak:

  1. Prześlij BatchOptimizeToursRequest do interfejsu Route Optimization API, który zwróci nazwę zasobu LRO.
  2. Wywołuj sondę GetOperation z nazwą zwróconego zasobu LRO, dopóki właściwości done lub error nie pojawią się w odpowiedzi LRO.
  3. Jeśli done ma wartość prawda i nie występuje żaden błąd, odczytuj parametr OptimizeToursResponses z identyfikatorów URI Google Cloud Storage określonych w żądaniu BatchOptimizeTours. Jeśli widzisz error, sprawdź błąd, zaktualizuj odpowiednio rekordy OptimizeToursRequest w Google Cloud Storage i spróbuj ponownie w zależności od zaobserwowanego błędu.

Żądania OptimizeTours i BatchOptimizeTours możesz wysyłać na różne sposoby, z poziomu wiersza poleceń lub za pomocą biblioteki klienta.

Dalej: Tworzenie żądania do interfejsu API