Synchrone und asynchrone Endpunkte

Entwickler im Europäischen Wirtschaftsraum (EWR)

Die Route Optimization API bietet zwei Methoden:

  • OptimizeTours ist eine synchrone Methode, die als Reaktion 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 einen oder mehrere OptimizeToursRequest und entsprechende OptimizeToursResponse-Nachrichten akzeptiert und den Ressourcennamen eines Vorgangs mit langer Ausführungszeit (LRO) (REST, gRPC) zurückgibt, der verwendet wird, um den Abschluss des Batches zu prüfen. OptimizeToursRequest werden im Hintergrund verarbeitet. Clients halten also nur so lange eine offene Verbindung zur Route Optimization API aufrecht, bis sie die BatchOptimizeToursRequest übermittelt oder GetOperation aufgerufen haben, um den LRO-Status zu prüfen. BatchOptimizeTours liest Anfragen von Google Cloud Storage und schreibt Antworten darauf.

Anwendungsfälle

OptimizeTours eignet sich gut für kleine und einfache Anfragen oder für Anfragen, die in wenigen Minuten oder weniger beantwortet werden können. Wenn Sie dauerhafte Verbindungen zur Route Optimization API aufrechterhalten, steigt das Risiko, dass die Verbindung unterbrochen wird, bevor eine Lösung zurückgegeben werden kann.

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

Vorgänge mit langer Ausführungszeit

LROs werden über die 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, in dem Fehler gemeldet werden, 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 einiger oder aller Elemente des Batches fehlgeschlagen ist.

Der typische Lebenszyklus einer BatchOptimizeTours-Anfrage sieht so aus:

  1. Senden Sie ein BatchOptimizeToursRequest an die Route Optimization API. Dadurch wird der Ressourcenname eines Vorgangs mit langer Ausführungszeit zurückgegeben.
  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 vorliegt, 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 entsprechend in Google Cloud Storage und wiederholen Sie den Vorgang 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 stellen