W tym przewodniku przedstawiamy eksperymentalne uruchomienie metod interfejsu API OptimizeToursLongRunning
i OptimizeToursUri, które umożliwiają użytkownikom wysyłanie pojedynczych
nieblokujących żądań optymalizacji. W przypadku optymalizacji nieblokującej użytkownik
szybko otrzymuje proto operacji z metody, której można użyć
do odwoływania się do stanu optymalizacji przez wywołanie GetOperation.
Więcej informacji znajdziesz w artykule Długotrwałe operacje.
Te metody nieblokujące zapewniają większą niezawodność niż metoda blokująca OptimizeTours, ponieważ klient nie musi utrzymywać połączenia z serwerem podczas wykonywania optymalizacji. Ponadto te nowe metody ułatwiają debugowanie
błędów w porównaniu z metodą BatchOptimizeTours, ponieważ każda optymalizacja jest
powiązana z jedną długotrwałą operacją (LRO).
Użytkownicy, którzy wolą umieszczać żądanie optymalizacji w tekście, mogą używać metody
OptimizeToursLongRunning, a użytkownicy, którzy wolą przesyłać
żądania i odczytywać odpowiedzi za pomocą Google Cloud Storage, mogą używać metody
OptimizeToursUri.
OptimizeToursLongRunning
Przykład: wysyłanie żądania OptimizeToursLongRunning
Zanim wyślesz żądanie, zastąp te parametry wartościami odpowiednimi dla Twojego środowiska:
- Upewnij się, że masz skonfigurowane domyślne dane uwierzytelniające aplikacji zgodnie z opisem w artykule Korzystanie z OAuth.
Ustaw PROJECT_NUMBER_OR_ID na numer lub identyfikator projektu w chmurze.
To polecenie wysyła żądanie
OptimizeToursLongRunningdo interfejsu Route Optimization API i otrzymuje powiązany z nim identyfikator operacji. Do sprawdzania stanu operacji można użyć metodyGetOperation. Po zakończeniu operacji metadane zawierają też ostateczną wartośćOptimizeToursResponse.curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeToursLongRunning' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ --data @- <<EOM { "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.42506261000996, "longitude": -122.09535511930135 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.42421503206021, "longitude": -122.09526063135228 } } ] } ], "vehicles": [ { "travelMode": "DRIVING", "costPerKilometer": 1.0 } ], } } EOM
OptimizeToursUri
Podobnie jak w przypadku BatchOptimizeTours, możesz używać OptimizeToursUri, aby nadal
przechowywać żądanie i odpowiedź optymalizacji w Google Cloud Storage.
Identyfikatory URI Cloud Storage muszą być podane w wiadomości z żądaniem OptimizeToursUri.
Zwracany stan Operation jest powiązany tylko z jednym przesłanym żądaniem OptimizeToursRequest.
Przykład: wysyłanie żądania OptimizeToursUri
Zanim wyślesz żądanie, zastąp te parametry wartościami odpowiednimi dla Twojego środowiska:
- Upewnij się, że masz skonfigurowane domyślne dane uwierzytelniające aplikacji zgodnie z opisem w artykule Korzystanie z OAuth.
Ustaw PROJECT_NUMBER_OR_ID na numer lub identyfikator projektu w chmurze.
To polecenie wysyła żądanie
OptimizeToursUrido interfejsu Route Optimization API i otrzymuje powiązany z nim identyfikator operacji. Do sprawdzania stanu operacji użyj metodyGetOperation. Po zakończeniu operacjiOptimizeToursResponsejest przechowywana zdalnie w ścieżce wyjściowego identyfikatora URI podanej w żądaniu.curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeToursUri' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ --data @- <<EOM { "input": { "uri": "gs://bucket/path/input/object.json" }, "output": { "uri": "gs://bucket/path/output/object.json" } } EOM