同步和异步端点

欧洲经济区 (EEA) 开发者

Route Optimization API 公开了两种方法:

  • OptimizeTours 是一种 同步 方法,用于返回针对 OptimizeToursRequest 优化的路线,以响应。客户端必须保持与 Route Optimization API 的开放连接,直到请求得到处理并返回 OptimizeToursResponse 或错误为止。
  • BatchOptimizeTours 是一种 异步 方法,用于接受一个 或多个 OptimizeToursRequest 和相应 OptimizeToursResponse 消息的 URI,并返回用于检查批处理完成情况的 长时间运行的操作 (LRO) (RESTgRPC)的资源名称。 OptimizeToursRequest 在后台处理,因此客户端只需保持 与 Route Optimization API 的开放连接,以便提交 BatchOptimizeToursRequest 或调用 GetOperation 来检查 LRO 状态。BatchOptimizeToursGoogle Cloud Storage 读取请求,并将响应写入 Google Cloud Storage

使用场景

OptimizeTours 适用于解决小型简单请求,或解决时间在几分钟或更短的请求。如果与 Route Optimization API 保持长时间连接,则在返回解决方案之前中断的风险会增加。

BatchOptimizeTours 可以处理较大的请求和解决时间较长的请求,因为它不需要与 Route Optimization API 保持长时间连接。

长时间运行的操作

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

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

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

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

下一步:发出 API 请求