Route Optimization API は、次の 2 つのメソッドを公開します。
OptimizeToursは、OptimizeToursRequestに応答して最適化されたルートを返す同期メソッドです。クライアントは、リクエストが処理され、OptimizeToursResponseまたはエラーが返されるまで、Route Optimization API へのオープン接続を維持する必要があります。BatchOptimizeToursは、1 つ以上のOptimizeToursRequestと対応するOptimizeToursResponseメッセージの URI を受け取り、バッチの完了を確認するために使用される長時間実行オペレーション(LRO)(REST、gRPC)のリソース名を返す非同期メソッドです。OptimizeToursRequestはバックグラウンドで処理されるため、クライアントはBatchOptimizeToursRequestを送信するか、GetOperationを呼び出して LRO ステータスを確認するまでの間だけ、Route Optimization API へのオープン接続を維持します。BatchOptimizeToursは、Google Cloud Storage からリクエストを読み取り、レスポンスを書き込みます。
ユースケース
OptimizeTours は、小規模で単純なリクエストや、解決時間が数分以下のリクエストに便利です。Route Optimization API への長時間の接続を維持すると、解決策が返される前に中断されるリスクが高まります。
BatchOptimizeTours は、Route Optimization API への長時間の接続を必要としないため、サイズの大きいリクエストや解決時間が長いリクエストを処理できます。
長時間実行オペレーション
LRO は、GetOperation メソッドを使用して Route Optimization API から読み取られ、バッチの完了ステータスを確認します。LRO には、バッチ全体の処理が完了したかどうかを示す done プロパティと、処理中に発生したエラーを報告する error フィールドが含まれています。done が true で error が存在しない場合、バッチは正常に完了しました。error が存在する場合は、バッチの一部またはすべてが処理に失敗したことを示します。
BatchOptimizeTours リクエストの一般的なライフサイクルは次のとおりです。
- Route Optimization API に
BatchOptimizeToursRequestを送信します。これにより、LRO のリソース名が返されます。 - LRO レスポンスに
doneプロパティまたはerrorプロパティが表示されるまで、返された LRO リソース名を使用してGetOperationをポーリングします。 doneが true でエラーがない場合、BatchOptimizeToursリクエストで指定された Google Cloud Storage URI からOptimizeToursResponsesを読み取ります。errorが存在する場合は、エラーを調べ、Google Cloud Storage でOptimizeToursRequestを適切に更新し、検出されたエラーに応じて再試行します。
OptimizeTours リクエストと BatchOptimizeTours リクエストは、コマンドラインから、またはクライアント ライブラリを使用して、さまざまな方法で送信できます。