Синхронные и асинхронные конечные точки

API оптимизации маршрутов предоставляет два метода:

  • OptimizeTours — это синхронный метод, который возвращает оптимизированный маршрут в ответ на OptimizeToursRequest . Клиенты должны поддерживать открытое соединение с API оптимизации маршрутов до тех пор, пока запрос не будет обработан и не будет возвращен OptimizeToursResponse или ошибка.
  • BatchOptimizeTours — это асинхронный метод, который принимает URI для одного или нескольких сообщений OptimizeToursRequest и соответствующих сообщений OptimizeToursResponse , возвращая имя ресурса длительной операции (LRO) ( REST , gRPC ), которая используется для проверки завершения пакета. OptimizeToursRequest обрабатываются в фоновом режиме, поэтому клиенты поддерживают открытые соединения с API оптимизации маршрутов только достаточно долго, чтобы отправить BatchOptimizeToursRequest или вызвать GetOperation для проверки статуса LRO. BatchOptimizeTours считывает запросы и записывает ответы в Google Cloud Storage .

Варианты использования

OptimizeTours удобен для решения небольших и простых запросов или для запросов со временем решения в несколько минут или меньше. Поддержание долгосрочных соединений с API оптимизации маршрутов увеличивает риск прерывания до того, как решение будет возвращено.

BatchOptimizeTours может обрабатывать более крупные запросы и запросы с более длительным временем решения, поскольку не требует длительного подключения к API оптимизации маршрутов.

Длительные операции

LRO считываются из API оптимизации маршрута с помощью метода GetOperation для проверки статуса завершения пакета. LRO включают свойство done , которое указывает, завершена ли обработка всего пакета, и поле error , которое сообщает об ошибках, возникших во время обработки. Если done имеет значение true и нет error , пакет успешно завершен. Наличие error указывает на то, что часть или весь пакет не прошли обработку.

Типичный жизненный цикл запроса BatchOptimizeTours выглядит следующим образом:

  1. Отправьте запрос BatchOptimizeToursRequest в API оптимизации маршрута, который возвращает имя ресурса LRO.
  2. Опрашивайте GetOperation с возвращенным именем ресурса LRO до тех пор, пока в ответе LRO не появятся свойства done или error .
  3. Если done имеет значение true и нет ошибок, прочитайте OptimizeToursResponses из URI Google Cloud Storage, указанных в запросе BatchOptimizeTours . Если error присутствует, проверьте ее, обновите OptimizeToursRequest соответствующим образом в Google Cloud Storage и повторите попытку в зависимости от обнаруженной ошибки.

Запросы OptimizeTours и BatchOptimizeTours можно отправлять различными способами: из командной строки или с помощью клиентской библиотеки.

Далее: Сделайте запрос API