比较 OptimizationTours 和 BatchOptimizeTours

Route Optimization API 提供两种方法:

  • OptimizeTours 是一种同步方法,可返回经过优化的路由以响应 OptimizeToursRequest在处理完请求并返回 OptimizeToursResponse 或错误之前,客户端必须保持与 Route Optimization API 的打开连接。
  • BatchOptimizeTours 是一种异步方法,它接受一条或多条 OptimizeToursRequest 的 URI 以及相应的 OptimizeToursResponse 消息,并返回用于检查批量完成情况的长时间运行的操作 (LRO)(RESTgRPC)的资源名称。OptimizeToursRequest 会在后台处理,因此客户端会在提交 BatchOptimizeToursRequest 或检查 LROstatus/} 时保持与 Route Optimization API 的打开连接。GetOperationBatchOptimizeToursGoogle Cloud Storage 读取请求并将响应写入到。

应用场景

OptimizeTours 适用于处理简单的小请求,或者解决时间不超过几分钟的请求。与 Route Optimization API 保持长期有效的连接会增加在返回解决方案之前发生中断的风险。

BatchOptimizeTours 不需要与 Route Optimization API 建立长期有效的连接,因此可以处理较大的请求和耗时较长的请求。

长时间运行的操作

使用 GetOperation 方法从 Route Optimization API 读取 LRO,以检查批次的完成状态。LRO 包含一个 done 属性(用于指示整个批次的处理是否已完成)和一个 error 字段(用于报告在处理过程中遇到的错误)。如果 done 为 true,并且不存在 error,则表示批次已成功完成。如果出现 error,则表示部分或全部批处理失败。

BatchOptimizeTours 请求的典型生命周期如下:

  1. BatchOptimizeToursRequest 提交到 Route Optimization API,以便返回 LRO 的资源名称。
  2. 使用返回的 LRO 资源名称轮询 GetOperation,直到 LRO 响应中显示 doneerror 属性。
  3. 如果 done 为 true 并且不存在错误,则从 BatchOptimizeTours 请求中指定的 Google Cloud Storage URI 中读取 OptimizeToursResponses。如果存在 error,请检查错误,相应地更新 Google Cloud Storage 中的 OptimizeToursRequest,并根据观察到的错误进行适当重试。

您可以通过多种方式发送 OptimizeToursBatchOptimizeTours 请求,可以从命令行或使用客户端库。

下一步:发出 API 请求