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
リクエストの一般的なライフサイクルは次のとおりです。
- 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
リクエストは、コマンドラインから、またはクライアント ライブラリを使用して、さまざまな方法で送信できます。