OptimizeTours und BatchOptimizeTours vergleichen

Die Route Optimierungs-API bietet zwei Methoden:

  • OptimizeTours ist eine synchrone Methode, die eine optimierte Route als Antwort auf eine OptimizeToursRequest zurückgibt. Clients müssen eine offene Verbindung zur Route Optimization API aufrechterhalten, bis die Anfrage verarbeitet wurde und ein OptimizeToursResponse oder ein Fehler zurückgegeben wird.
  • BatchOptimizeTours ist eine asynchrone Methode, die URIs für eine oder mehrere OptimizeToursRequest- und entsprechende OptimizeToursResponse-Nachrichten akzeptiert und den Ressourcennamen eines lang laufenden Vorgangs (REST, gRPC) zurückgibt, der zur Überprüfung der Batch-Fertigstellung verwendet wird. OptimizeToursRequests werden im Hintergrund verarbeitet, sodass Clients nur so lange eine offene Verbindung zur Route Optimierungs-API aufrechterhalten, bis sie BatchOptimizeToursRequest/den Status senden und {10/status} aufrufen können.GetOperation BatchOptimizeTours liest Anfragen aus und schreibt Antworten in Google Cloud Storage.

Anwendungsbereiche

OptimizeTours eignet sich hervorragend zum Lösen kleiner und einfacher Anfragen oder für Anfragen, deren Lösungsdauer nur wenige Minuten beträgt. Wenn langlebige Verbindungen zur Route Optimization API aufrechterhalten werden, steigt das Risiko von Unterbrechungen, bevor eine Lösung zurückgegeben werden kann. Weitere Informationen finden Sie unter Mit Zeitüberschreitung arbeiten.

BatchOptimizeTours kann größere Anfragen und Anfragen mit längerer Lösungszeit verarbeiten, da keine langlebige Verbindung zur Route Optimierung API erforderlich ist.

Lang andauernde Vorgänge

LROs werden mit der Methode GetOperation aus der Route Optimization API gelesen, um den Abschlussstatus eines Batches zu prüfen. LROs enthalten das Attribut done, das angibt, ob die Verarbeitung des gesamten Batches abgeschlossen ist, und das Feld error, das Fehler meldet, die während der Verarbeitung aufgetreten sind. Wenn done „true“ ist und kein error vorhanden ist, wurde der Batch erfolgreich abgeschlossen. Das Vorhandensein eines error weist darauf hin, dass die Verarbeitung eines Teils oder des gesamten Batches fehlgeschlagen ist.

Der typische Lebenszyklus einer BatchOptimizeTours-Anfrage sieht so aus:

  1. Senden Sie einen BatchOptimizeToursRequest an die Route Optimization API, die den Ressourcennamen eines LRO zurückgibt.
  2. Fragen Sie GetOperation mit dem zurückgegebenen Ressourcennamen für den Vorgang ab, bis das Attribut done oder error in der Antwort für die LRO-Antwort angezeigt wird.
  3. Wenn done wahr ist und kein Fehler vorhanden ist, lesen Sie OptimizeToursResponses aus den Google Cloud Storage-URIs, die in der BatchOptimizeTours-Anfrage angegeben sind. Wenn error vorhanden ist, prüfen Sie den Fehler, aktualisieren Sie die OptimizeToursRequests entsprechend in Google Cloud Storage und versuchen Sie es je nach beobachtetem Fehler nach Bedarf noch einmal.

Sie können OptimizeTours- und BatchOptimizeTours-Anfragen auf verschiedene Arten senden, entweder über die Befehlszeile oder mithilfe einer Clientbibliothek.

Nächster Schritt: Anfrage senden