W tym przewodniku przedstawiamy eksperymentalne wprowadzenie 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 protokół Operation z metody, której można użyć do odwoływania się do stanu optymalizacji przez wywołanie GetOperation
.
Więcej informacji znajdziesz w sekcji 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. W porównaniu z metodą BatchOptimizeTours
nowe metody ułatwiają też debugowanie błędów, ponieważ każda optymalizacja jest powiązana z jedną długo trwającą operacją (LRO).
Użytkownicy, którzy wolą umieszczać żądanie optymalizacji w treści, mogą użyć metody OptimizeToursLongRunning
, a użytkownicy, którzy wolą przesyłać żądania i odczytywać odpowiedzi za pomocą Google Cloud Storage, mogą użyć metody OptimizeToursUri
.
OptimizeToursLongRunning
Przykład: wysyłanie OptimizeToursLongRunning
żądania
Zanim wyślesz żądanie, zastąp te parametry wartościami odpowiednimi dla Twojego środowiska:
- Upewnij się, że masz skonfigurowane domyślne dane logowania aplikacji zgodnie z opisem w artykule Korzystanie z OAuth.
Ustaw PROJECT_NUMBER_OR_ID na numer lub identyfikator projektu Cloud.
To polecenie wysyła do interfejsu Route Optimization API żądanie
OptimizeToursLongRunning
i otrzymuje powiązany z nim identyfikator operacji. Do sprawdzania stanu operacji możesz 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 optymalizacji i odpowiedź w Google Cloud Storage.
Identyfikatory URI Cloud Storage muszą być podane w OptimizeToursUri
wiadomości z prośbą.
Zwracany Operation
stan jest powiązany tylko z jednym przesłanym OptimizeToursRequest
.
Przykład: wysyłanie OptimizeToursUri
żądania
Zanim wyślesz żądanie, zastąp te parametry wartościami odpowiednimi dla Twojego środowiska:
- Upewnij się, że masz skonfigurowane domyślne dane logowania aplikacji zgodnie z opisem w artykule Korzystanie z OAuth.
Ustaw PROJECT_NUMBER_OR_ID na numer lub identyfikator projektu Cloud.
To polecenie wysyła do interfejsu Route Optimization API żądanie
OptimizeToursUri
i otrzymuje powiązany z nim identyfikator operacji. Użyj metodyGetOperation
, aby sprawdzić stan operacji. Po zakończeniu operacji plikOptimizeToursResponse
jest przechowywany zdalnie w ścieżce URI danych wyjściowych 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