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 gegenüber der blockierenden Methode OptimizeTours den Vorteil, dass die Verbindung zum Server nicht aufrechterhalten werden muss, während die Optimierung ausgeführt wird. Außerdem lassen sich Fehler mit diesen neuen Methoden leichter beheben als mit BatchOptimizeTours, da jede Optimierung einem einzelnen Vorgang mit langer Ausführungszeit (Long-Running Operation, LRO) zugeordnet ist.

Nutzer, die die Optimierungsanfrage inline einfügen möchten, können die Methode OptimizeToursLongRunning verwenden. Nutzer, die die Anfragen hochladen und die Antwort über Google Cloud Storage lesen 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:

  • Achten Sie darauf, dass Sie Standardanmeldedaten für Anwendungen wie unter OAuth verwenden beschrieben konfiguriert haben.
  • 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 empfangen. Mit der Methode GetOperation kann der Status des Vorgangs abgefragt werden. Wenn der Vorgang abgeschlossen ist, 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 OptimizeToursUri verwenden, um Ihre Optimierungsanfrage und -antwort weiterhin in Google Cloud Storage zu speichern. Cloud Storage-URIs müssen in der OptimizeToursUri-Anforderungsnachricht angegeben werden. Der zurückgegebene Status Operation bezieht sich nur auf die einzelne eingereichte OptimizeToursRequest.

Beispiel: OptimizeToursUri-Anfrage stellen

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

  • Achten Sie darauf, dass Sie Standardanmeldedaten für Anwendungen wie unter OAuth verwenden beschrieben konfiguriert haben.
  • 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 empfangen. Verwenden Sie die Methode GetOperation, um den Status des Vorgangs abzufragen. Wenn der Vorgang abgeschlossen ist, wird OptimizeToursResponse remote unter dem in der Anfrage angegebenen Ausgabepfad-URI 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