OptimizeTours と BatchOptimizeTours の比較

Route Optimization API は、次の 2 つのメソッドを公開します。

  • OptimizeTours は、OptimizeToursRequest に応じて最適化されたルートを返す同期メソッドです。リクエストが処理され、OptimizeToursResponse またはエラーが返されるまで、クライアントは Route Optimization API とのオープンな接続を維持する必要があります。
  • BatchOptimizeTours は、1 つ以上の OptimizeToursRequest と対応する OptimizeToursResponse メッセージの URI を受け取り、バッチ完了のチェックに使用される長時間実行オペレーション(LRO)(RESTgRPC)のリソース名を返す非同期メソッドです。OptimizeToursRequest はバックグラウンドで処理されるため、クライアントは BatchOptimizeToursRequest を送信するか {10/status} を確認するのに十分な期間のみ Route Optimization API へのオープン接続を維持します。GetOperationBatchOptimizeTours は、Google Cloud Storage に対してリクエストを読み取り、レスポンスを書き込みます。

ユースケース

OptimizeTours は、小規模で単純なリクエストや、解決時間が数分以下のリクエストに適しています。Route Optimization API への長時間接続を維持すると、ソリューションが返される前に中断するリスクが高くなります。

BatchOptimizeTours は、Route Optimization API への長時間接続を必要としないため、より大きなリクエストを処理し、解決時間を長くできます。

長時間実行オペレーション

LRO は、GetOperation メソッドを使用して Route Optimization API から読み込まれ、バッチの完了ステータスを確認します。LRO には、バッチ全体の処理が完了したかどうかを示す done プロパティと、処理中に発生したエラーを報告する error フィールドが含まれます。done が true で、error が存在しない場合、バッチは正常に完了しています。error が存在する場合は、バッチの一部またはすべてが失敗したことを示します。

BatchOptimizeTours リクエストの一般的なライフサイクルは次のとおりです。

  1. BatchOptimizeToursRequest を Route Optimization API に送信します。これにより、LRO のリソース名が返されます。
  2. done プロパティまたは error プロパティが LRO レスポンスに表示されるまで、返された LRO リソース名で GetOperation をポーリングします。
  3. done が true でエラーがない場合は、BatchOptimizeTours リクエストで指定された Google Cloud Storage URI から OptimizeToursResponses を読み取ります。error が存在する場合は、エラーを検査し、それに応じて Google Cloud Storage で OptimizeToursRequest を更新し、確認されたエラーに応じて必要に応じて再試行します。

OptimizeTours リクエストと BatchOptimizeTours リクエストは、コマンドラインから、またはクライアント ライブラリを使用して、さまざまな方法で送信できます。

次へ: API リクエストを行う