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