Synchrone und asynchrone Endpunkte

Entwickler im Europäischen Wirtschaftsraum (EWR)

Die Route Optimization API bietet zwei Methoden:

  • OptimizeTours ist eine synchrone Methode, die als Antwort auf eine OptimizeToursRequest eine optimierte Route zurückgibt. Clients müssen eine offene Verbindung zur Route Optimization API aufrechterhalten, bis die Anfrage verarbeitet und eine 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 andauernden Vorgangs (LRO) (REST, gRPC) zurückgibt, mit dem die Batchvervollständigung geprüft wird. OptimizeToursRequest-Anfragen werden im Hintergrund verarbeitet. Clients halten nur so lange eine offene Verbindung zur Route Optimization API aufrecht, bis sie die BatchOptimizeToursRequest gesendet oder GetOperation aufgerufen haben, um den LRO Status zu prüfen. BatchOptimizeTours liest Anfragen aus Google Cloud Storage und schreibt Antworten dorthin.

Anwendungsfälle

OptimizeTours eignet sich für kleine und einfache Anfragen oder für Anfragen mit einer Lösungszeit von wenigen Minuten oder weniger. Wenn Sie lange Verbindungen zur Route Optimization API aufrechterhalten, steigt das Risiko einer Unterbrechung, bevor eine Lösung zurückgegeben werden kann.

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

Lang andauernde Vorgänge

LROs werden über die Methode GetOperation aus der Route Optimization API gelesen, um den Abschlussstatus eines Batches zu prüfen. LROs enthalten die Property done, die angibt, ob die Verarbeitung des gesamten Batches abgeschlossen ist, und ein Feld error, in dem Fehler gemeldet werden, die während der Verarbeitung aufgetreten sind. Wenn done auf „true“ gesetzt ist und kein error vorhanden ist, wurde der Batch erfolgreich abgeschlossen. Das Vorhandensein eines error gibt an, dass die Verarbeitung einiger oder aller Elemente des Batches fehlgeschlagen ist.

Der typische Lebenszyklus einer BatchOptimizeTours-Anfrage sieht so aus:

  1. Senden Sie eine BatchOptimizeToursRequest an die Route Optimization API. Diese gibt den Ressourcennamen eines LRO zurück.
  2. Rufen Sie GetOperation mit dem zurückgegebenen LRO-Ressourcennamen auf, bis die Properties done oder error in der LRO-Antwort angezeigt werden.
  3. Wenn done auf „true“ gesetzt ist und kein Fehler vorhanden ist, lesen Sie OptimizeToursResponses aus den in der BatchOptimizeTours-Anfrage angegebenen Google Cloud Storage-URIs. Wenn error vorhanden ist, prüfen Sie den Fehler, aktualisieren Sie die OptimizeToursRequest-Anfragen entsprechend in Google Cloud Storage und versuchen Sie es noch einmal, je nach beobachtetem Fehler.

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

Weiter: API-Anfrage senden