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