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 выглядит следующим образом:
- Отправьте запрос
BatchOptimizeToursRequestв API оптимизации маршрутов, который вернет имя ресурса LRO. - Опрашивайте
GetOperationиспользуя возвращенное имя ресурса LRO, до тех пор, пока в ответе LRO не появятся свойстваdoneилиerror. - Если
doneистинно и ошибок нет, прочитайтеOptimizeToursResponsesиз URI Google Cloud Storage, указанных в запросеBatchOptimizeTours. Если обнаруженаerror, проанализируйте её, обновите объектыOptimizeToursRequestв Google Cloud Storage и повторите попытку в зависимости от обнаруженной ошибки.
Вы можете отправлять запросы OptimizeTours и BatchOptimizeTours различными способами, как из командной строки, так и с помощью клиентской библиотеки.