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 のリソース名が返されます。 done
プロパティまたはerror
プロパティが LRO レスポンスに表示されるまで、返された LRO リソース名を使用してGetOperation
をポーリングします。done
が true で、エラーがない場合は、BatchOptimizeTours
リクエストで指定された Google Cloud Storage URI からOptimizeToursResponses
を読み取ります。error
が存在する場合は、エラーを調べて、Google Cloud Storage でOptimizeToursRequest
を適宜更新し、観測されたエラーに応じて適切に再試行します。
OptimizeTours
リクエストと BatchOptimizeTours
リクエストは、コマンドラインまたはクライアント ライブラリを使用して、さまざまな方法で送信できます。