OptimizeTours und BatchOptimizeTours vergleichen

Die Route Optimization API stellt zwei Methoden zur Verfügung:

  • 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-Fehler oder ein Fehler zurückgegeben wird.
  • BatchOptimizeTours ist eine asynchrone Methode, die URIs für eine oder mehrere OptimizeToursRequest-Nachrichten und entsprechende OptimizeToursResponse-Nachrichten akzeptiert. Dabei wird der Ressourcenname eines lange laufenden Vorgangs (REST, gRPC) zurückgegeben, der zur Prüfung des Batch-Abschlusses verwendet wird. OptimizeToursRequests werden im Hintergrund verarbeitet, sodass Clients nur so lange offene Verbindungen zur Route Optimization API halten, um den BatchOptimizeToursRequest/}-Status zu senden oder aufzurufen.GetOperation BatchOptimizeTours liest Anfragen aus Google Cloud Storage und schreibt Antworten in diese.

Anwendungsbereiche

OptimizeTours eignet sich für die Bearbeitung kleiner und einfacher Anfragen oder für Anfragen mit einer Lösungsdauer von wenigen Minuten oder weniger. Die Aufrechterhaltung langlebiger Verbindungen zur Route Optimization API erhöht das Unterbrechungsrisiko, bevor eine Lösung zurückgegeben werden kann.

BatchOptimizeTours kann größere Anfragen und Anfragen mit einer längeren Lösungszeit verarbeiten, da keine langlebige Verbindung zur Route Optimize 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 ein done-Attribut, das angibt, ob die Verarbeitung des gesamten Batches abgeschlossen ist, und ein error-Feld, das während der Verarbeitung aufgetretene Fehler meldet. Wenn done „true“ und kein error vorhanden ist, wurde der Batch erfolgreich abgeschlossen. Wenn error vorhanden ist, bedeutet das, dass die Verarbeitung eines Teils oder des gesamten Batches fehlgeschlagen ist.

Der typische Lebenszyklus einer BatchOptimizeTours-Anfrage sieht so aus:

  1. Senden Sie eine BatchOptimizeToursRequest an die Route Optimization API, die den Ressourcennamen eines LRO zurückgibt.
  2. Fragen Sie GetOperation mit dem zurückgegebenen LRO-Ressourcennamen ab, bis die Attribute done oder error in der LRO-Antwort angezeigt werden.
  3. Wenn done „true“ ist und kein Fehler vorhanden ist, lesen Sie OptimizeToursResponses aus den Google Cloud Storage-URIs aus, 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 noch einmal.

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

Nächster Schritt: API-Anfrage senden