Сравнение OptimizeTours и BatchOptimizeTours

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 истинно и error нет, пакет выполнен успешно. Наличие error указывает на то, что не удалось обработать часть или весь пакет.

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

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

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

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