Comparación de OptimizeTours y BatchOptimizeTours

La API de Route Optimization expone dos métodos:

  • OptimizeTours es un método síncrono que muestra una ruta optimizada en respuesta a un OptimizeToursRequest. Los clientes deben mantener una conexión abierta con la API de Route Optimization hasta que se procese la solicitud y se muestre un OptimizeToursResponse o error.
  • BatchOptimizeTours es un método asíncrono que acepta URI para uno o más OptimizeToursRequest y los mensajes OptimizeToursResponse correspondientes, lo que muestra el nombre del recurso de una operación de larga duración (LRO) (REST, gRPC) que se usa para verificar la finalización del lote. Los OptimizeToursRequest se procesan en segundo plano, por lo que los clientes mantienen una conexión abierta a la API de optimización de rutas solo el tiempo suficiente para enviar la BatchOptimizeToursRequest o llamar a GetOperation. BatchOptimizeTours lee solicitudes y escribe respuestas en Google Cloud Storage.

Casos de uso

OptimizeTours es conveniente para resolver solicitudes pequeñas y simples, o para solicitudes con tiempos de resolución de algunos minutos o menos. Mantener conexiones de larga duración a la API de Route Optimization aumenta el riesgo de interrupción antes de que se pueda mostrar una solución. Consulta Trabajar con tiempo de espera para obtener más información.

BatchOptimizeTours puede controlar solicitudes y solicitudes más grandes con un tiempo de resolución más largo porque no requiere una conexión de larga duración a la API de optimización de rutas.

Operaciones de larga duración

Las LRO se leen desde la API de Route Optimization con el método GetOperation para verificar el estado de finalización de un lote. Las LRO incluyen una propiedad done que indica si se completó el procesamiento de todo el lote y un campo error que informa errores encontrados durante el procesamiento. Si done es verdadero y no hay error, el lote se completó de forma correcta. La presencia de un error indica que falló el procesamiento por lotes o parte de él.

El ciclo de vida típico de una solicitud BatchOptimizeTours es el siguiente:

  1. Envía un BatchOptimizeToursRequest a la API de Route Optimization, que muestre el nombre del recurso de una LRO.
  2. Sondea GetOperation con el nombre del recurso de LRO que se muestra hasta que las propiedades done o error aparezcan en la respuesta de la LRO.
  3. Si done es verdadero y no hay ningún error, lee OptimizeToursResponses de los URI de Google Cloud Storage especificados en la solicitud BatchOptimizeTours. Si error está presente, inspecciona el error, actualiza las OptimizeToursRequest según corresponda en Google Cloud Storage y vuelve a intentarlo según corresponda según el error observado.

Puedes enviar solicitudes OptimizeTours y BatchOptimizeTours de varias maneras, ya sea desde la línea de comandos o con una biblioteca cliente.

Siguiente: Envía una solicitud