В этом руководстве представлен экспериментальный запуск методов API OptimizeToursLongRunning
и OptimizeToursUri
, которые позволяют пользователям выполнять одиночные неблокирующие запросы на оптимизацию. При неблокирующей оптимизации пользователь быстро получает прототип операции из метода, который можно использовать для получения информации о состоянии оптимизации, вызвав GetOperation
. Подробнее см. в разделе «Длительные операции» .
Эти неблокирующие методы обеспечивают более высокую надёжность по сравнению с блокирующим методом OptimizeTours
, поскольку клиенту не требуется поддерживать соединение с сервером во время выполнения оптимизации. Кроме того, эти новые методы упрощают отладку сбоев по сравнению с BatchOptimizeTours
, поскольку каждая оптимизация связана с одной длительной операцией (LRO).
Пользователи, которые предпочитают встраивать запросы на оптимизацию, могут использовать метод OptimizeToursLongRunning
, а пользователи, которые предпочитают загружать запросы и читать ответы с помощью Google Cloud Storage, могут использовать метод OptimizeToursUri
.
OptimizeToursLongRunning
Пример: сделайте запрос OptimizeToursLongRunning
Перед созданием запроса замените следующие параметры на значения, соответствующие вашей среде:
- Убедитесь, что у вас настроены учетные данные приложения по умолчанию , как описано в разделе Использование OAuth .
Задайте PROJECT_NUMBER_OR_ID в качестве номера или идентификатора вашего облачного проекта.
Следующая команда отправляет запрос
OptimizeToursLongRunning
к API оптимизации маршрутов и получает связанный с ним идентификатор операции. МетодGetOperation
можно использовать для запроса статуса операции. После завершения операции метаданные также содержат финальный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
Как и BatchOptimizeTours
, вы можете использовать OptimizeToursUri
для дальнейшего хранения запроса и ответа на оптимизацию в Google Cloud Storage. URI облачного хранилища должны быть указаны в сообщении запроса OptimizeToursUri
. Возвращаемый статус Operation
связан только с одним отправленным OptimizeToursRequest
.
Пример: сделайте запрос OptimizeToursUri
Перед созданием запроса замените следующие параметры на значения, соответствующие вашей среде:
- Убедитесь, что у вас настроены учетные данные приложения по умолчанию , как описано в разделе Использование OAuth .
Задайте PROJECT_NUMBER_OR_ID в качестве номера или идентификатора вашего облачного проекта.
Следующая команда отправляет запрос
OptimizeToursUri
к API оптимизации маршрутов и получает связанный с ним идентификатор операции. Используйте методGetOperation
для запроса статуса операции. После завершения операции ответOptimizeToursResponse
сохраняется удалённо по выходному URI-пути, указанному в запросе.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