比较 OptimizationTours 和 BatchOptimizeTours

Route Optimization API 提供两种方法:

  • OptimizeTours 是一种同步方法,可在 对 OptimizeToursRequest 的响应。客户端必须保持开放的 并连接到 Route Optimization API,直到请求处理完毕 返回 OptimizeToursResponse 或错误。
  • BatchOptimizeTours 是一种异步方法,可接受某个资源的 URI 或更多 OptimizeToursRequest 和相应的 OptimizeToursResponse 消息,返回长时间运行的操作 (LRO) 的资源名称RESTgRPC),用于检查批量作业的完成情况。 OptimizeToursRequest 在后台处理,因此客户端会维护 打开与 Route Optimization API 的连接,时间仅够提交 BatchOptimizeToursRequest 或调用 GetOperation 以检查 LRO 状态。BatchOptimizeToursGoogle Cloud Storage

使用场景

OptimizeTours 适用于处理简单的小请求,或者 处理时间不超过几分钟的请求。保持长期存在 与 Route Optimization API 集成的 即可返回解决方案。

BatchOptimizeTours 可以处理较大的请求,也可以处理耗时较长的请求 因为不需要与路由建立长期连接 Optimization API。

长时间运行的操作

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

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

  1. 向 Route Optimization API 提交 BatchOptimizeToursRequest, 返回 LRO 的资源名称。
  2. 使用返回的 LRO 资源名称对 GetOperation 进行轮询,直到 doneerror 属性出现在 LRO 响应中。
  3. 如果 done 为 true 且不存在错误,请阅读 OptimizeToursResponsesBatchOptimizeTours 中指定的 Google Cloud Storage URI 中 请求。如果存在 error,则检查错误,更新 在 Google Cloud Storage 中相应地存储 OptimizeToursRequest,并以以下身份重试: 根据观察到的错误进行适当调整。

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

下一步:发出 API 请求