Route Optimization API は、次の 2 つのメソッドを公開します。
OptimizeTours
は、OptimizeToursRequest
に応じて最適化されたルートを返す同期メソッドです。リクエストが処理され、OptimizeToursResponse
またはエラーが返されるまで、クライアントは Route Optimization API とのオープンな接続を維持する必要があります。BatchOptimizeTours
は、1 つ以上のOptimizeToursRequest
と対応するOptimizeToursResponse
メッセージの URI を受け取り、バッチ完了のチェックに使用される長時間実行オペレーション(LRO)(REST、gRPC)のリソース名を返す非同期メソッドです。OptimizeToursRequest
はバックグラウンドで処理されるため、クライアントはBatchOptimizeToursRequest
を送信するか {10/status} を確認するのに十分な期間のみ Route Optimization API へのオープン接続を維持します。GetOperation
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
リクエストは、コマンドラインから、またはクライアント ライブラリを使用して、さまざまな方法で送信できます。