Einzelne nicht blockierende API-Methoden zur Optimierung

In diesem Leitfaden wird die experimentelle Einführung der API-Methoden OptimizeToursLongRunning und OptimizeToursUri beschrieben, mit denen Nutzer einzelne nicht blockierende Optimierungsanfragen stellen können. Bei einer nicht blockierenden Optimierung erhält der Nutzer schnell ein Operation-Proto von der Methode, mit dem er den Status der Optimierung durch Aufrufen von GetOperation abrufen kann. Weitere Informationen finden Sie unter Vorgänge mit langer Ausführungszeit.

Diese nicht blockierenden Methoden bieten im Vergleich zur blockierenden Methode OptimizeTours Vorteile in Bezug auf die Zuverlässigkeit, da der Client während der Ausführung der Optimierung nicht die Verbindung zum Server aufrechterhalten muss. Außerdem lassen sich mit diesen neuen Methoden Fehler im Vergleich zu BatchOptimizeTours leichter beheben, da jeder Optimierung ein einzelner Vorgang mit langer Ausführungszeit (Long-Running Operation, LRO) zugeordnet ist.

Nutzer, die die Optimierungsanfrage lieber inline einfügen möchten, können die Methode OptimizeToursLongRunning verwenden. Nutzer, die die Anfragen und die Leseantwort lieber über Google Cloud Storage hochladen möchten, können die Methode OptimizeToursUri verwenden.

OptimizeToursLongRunning

Beispiel: OptimizeToursLongRunning-Anfrage stellen

Ersetzen Sie vor dem Senden einer Anfrage die folgenden Parameter durch Werte, die für Ihre Umgebung geeignet sind:

  • Die Standardanmeldedaten für Anwendungen müssen wie unter OAuth verwenden beschrieben konfiguriert sein.
  • Legen Sie PROJECT_NUMBER_OR_ID auf Ihre Cloud-Projektnummer oder -ID fest.

    Mit dem folgenden Befehl wird eine OptimizeToursLongRunning-Anfrage an die Route Optimization API gesendet und eine zugehörige Vorgangs-ID zurückgegeben. Mit der Methode GetOperation können Sie den Status des Vorgangs abfragen. Nach Abschluss des Vorgangs enthalten die Metadaten auch die endgültige OptimizeToursResponse.

    curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeToursLongRunning' \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    --data @- <<EOM
    {
      "model": {
        "shipments": [
          {
            "pickups": [
              {
                "arrivalLocation": {
                  "latitude": 37.42506261000996,
                  "longitude": -122.09535511930135
                }
              }
            ],
            "deliveries": [
              {
                "arrivalLocation": {
                  "latitude": 37.42421503206021,
                  "longitude": -122.09526063135228
                }
              }
            ]
          }
        ],
        "vehicles": [
          {
            "travelMode": "DRIVING",
            "costPerKilometer": 1.0
          }
        ],
      }
    }
    EOM

OptimizeToursUri

Wie bei BatchOptimizeTours können Sie auch OptimizeToursUri verwenden, um Ihre Optimierungsanfrage und ‑antwort weiterhin in Google Cloud Storage zu speichern. Cloud Storage-URIs müssen in der OptimizeToursUri-Anfragenachricht angegeben werden. Der zurückgegebene Operation-Status ist nur mit der einzelnen eingereichten OptimizeToursRequest verknüpft.

Beispiel: OptimizeToursUri-Anfrage stellen

Ersetzen Sie vor dem Senden einer Anfrage die folgenden Parameter durch Werte, die für Ihre Umgebung geeignet sind:

  • Die Standardanmeldedaten für Anwendungen müssen wie unter OAuth verwenden beschrieben konfiguriert sein.
  • Legen Sie PROJECT_NUMBER_OR_ID auf Ihre Cloud-Projektnummer oder -ID fest.

    Mit dem folgenden Befehl wird eine OptimizeToursUri-Anfrage an die Route Optimization API gesendet und eine zugehörige Vorgangs-ID zurückgegeben. Verwenden Sie die Methode GetOperation, um den Status des Vorgangs abzufragen. Nach Abschluss des Vorgangs wird OptimizeToursResponse aus der Ferne im in der Anfrage angegebenen Ausgabe-URI-Pfad gespeichert.

    curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeToursUri' \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    --data @- <<EOM
    {
      "input": {
        "uri": "gs://bucket/path/input/object.json"
      },
      "output": {
        "uri": "gs://bucket/path/output/object.json"
      }
    }
    EOM