Route Optimization API は次の 2 つのメソッドを公開します。
OptimizeToursは、OptimizeToursRequestに応答して最適化されたルートを返す同期メソッドです。クライアントは、リクエストが処理され、OptimizeToursResponseまたはエラーが返されるまで、Route Optimization API への接続を開いたままにする必要があります。BatchOptimizeToursは、1 つ以上のOptimizeToursRequestの URI と対応するOptimizeToursResponseメッセージを受け取り、バッチ完了の確認に使用される長時間実行オペレーション(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 リクエストの一般的なライフサイクルは次のとおりです。
BatchOptimizeToursRequestを Route Optimization API に送信します。これにより、LRO のリソース名が返されます。doneプロパティまたはerrorプロパティが LRO レスポンスに表示されるまで、返された LRO リソース名を使用してGetOperationをポーリングします。doneが true で、エラーがない場合は、BatchOptimizeToursリクエストで指定された Google Cloud Storage URI からOptimizeToursResponsesを読み取ります。errorが存在する場合は、エラーを調べて、Google Cloud Storage でOptimizeToursRequestを適宜更新し、観測されたエラーに応じて適切に再試行します。
OptimizeTours リクエストと BatchOptimizeTours リクエストは、コマンドラインまたはクライアント ライブラリを使用して、さまざまな方法で送信できます。