Punkty końcowe synchroniczne i asynchroniczne

Deweloperzy z Europejskiego Obszaru Gospodarczego (EOG)

Interfejs Route Optimization API udostępnia 2 metody:

  • OptimizeTours to metoda synchroniczna, która w odpowiedzi na OptimizeToursRequest zwraca zoptymalizowaną trasę. Klienci muszą utrzymywać otwarte połączenie z interfejsem Route Optimization API do momentu przetworzenia żądania i zwrócenia OptimizeToursResponse lub błędu.
  • BatchOptimizeTours to metoda asynchroniczna, która akceptuje identyfikatory URI co najmniej 1 wiadomości OptimizeToursRequest i odpowiadających im wiadomości OptimizeToursResponse , zwracając nazwę zasobu długo trwającej operacji (LRO) (REST, gRPC), która służy do sprawdzania, czy przetwarzanie zbiorcze zostało zakończone. Żądania OptimizeToursRequest są przetwarzane w tle, więc klienci utrzymują otwarte połączenie z interfejsem Route Optimization API tylko na tyle długo, aby przesłać BatchOptimizeToursRequest lub wywołać GetOperation w celu sprawdzenia stanu LRO. BatchOptimizeTours odczytuje żądania z Google Cloud Storage i zapisuje w nim odpowiedzi.

Przypadki użycia

Metoda OptimizeTours jest wygodna do rozwiązywania małych i prostych żądań lub żądań, których czas rozwiązywania wynosi kilka minut lub mniej. Utrzymywanie długotrwałych połączeń z interfejsem Route Optimization API zwiększa ryzyko przerwania przed zwróceniem rozwiązania.

Metoda BatchOptimizeTours może obsługiwać większe żądania i żądania o dłuższym czasie rozwiązywania, ponieważ nie wymaga długotrwałego połączenia z interfejsem Route Optimization API.

Długo trwające operacje

Długo trwające operacje są odczytywane z interfejsu Route Optimization API za pomocą metody GetOperation, aby sprawdzić stan zakończenia przetwarzania zbiorczego. Długo trwające operacje obejmują właściwość done, która wskazuje, czy przetwarzanie całego pakietu zostało zakończone, oraz pole error, które informuje o błędach napotkanych podczas przetwarzania. Jeśli wartość done to true i nie występuje żaden error, przetwarzanie zbiorcze zostało zakończone. Obecność error wskazuje, że przetwarzanie niektórych lub wszystkich elementów zbiorczych nie powiodło się.

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

  1. Prześlij BatchOptimizeToursRequest do interfejsu Route Optimization API, który zwraca nazwę zasobu LRO.
  2. Wywołuj metodę GetOperation z zwróconą nazwą zasobu LRO, aż wejdzie ona w stan done lub error.
  3. Jeśli wartość done to true i nie występuje żaden błąd, odczytaj OptimizeToursResponses z identyfikatorów URI Google Cloud Storage określonych w żądaniu BatchOptimizeTours. Jeśli wystąpił error, sprawdź go, odpowiednio zaktualizuj żądania OptimizeToursRequest w Google Cloud Storage i ponów próbę w zależności od zaobserwowanego błędu.

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

Dalej: wysyłanie żądania do interfejsu API