同期エンドポイントと非同期エンドポイント

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

  • OptimizeTours は、OptimizeToursRequest に応答して最適化されたルートを返す同期メソッドです。クライアントは、リクエストが処理され、OptimizeToursResponse またはエラーが返されるまで、Route Optimization API へのオープン接続を維持する必要があります。
  • BatchOptimizeTours は、1 つ以上の OptimizeToursRequest の URI と対応する OptimizeToursResponse メッセージを受け入れ、バッチの完了を確認するために使用される長時間実行オペレーション(LRO)(RESTgRPC)のリソース名を返す非同期メソッドです。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 リクエストの一般的なライフサイクルは次のとおりです。

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

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

次へ: API リクエストを実行する