Metodi API di ottimizzazione non bloccanti singoli

Questa guida introduce il lancio sperimentale dei metodi API OptimizeToursLongRunning e OptimizeToursUri che consentono agli utenti di effettuare singole richieste di ottimizzazione non bloccanti. In un'ottimizzazione non bloccante, l'utente riceve rapidamente un proto di operazione dal metodo che può essere utilizzato per fare riferimento allo stato dell'ottimizzazione chiamando GetOperation. Per ulteriori dettagli, consulta la sezione Operazioni a lunga esecuzione.

Questi metodi non bloccanti offrono i vantaggi di affidabilità rispetto al metodo OptimizeTours bloccante, poiché il client non deve mantenere la connessione al server durante l'esecuzione dell'ottimizzazione. Inoltre, questi nuovi metodi semplificano il debug degli errori rispetto a BatchOptimizeTours, poiché ogni ottimizzazione è associata a una singola operazione a lunga esecuzione (LRO).

Gli utenti che preferiscono incorporare la richiesta di ottimizzazione possono utilizzare il metodo OptimizeToursLongRunning, mentre gli utenti che preferiscono caricare le richieste e leggere la risposta utilizzando Google Cloud Storage possono utilizzare il metodo OptimizeToursUri.

OptimizeToursLongRunning

Esempio: inviare una richiesta OptimizeToursLongRunning

Prima di effettuare una richiesta, sostituisci i seguenti parametri con valori appropriati per il tuo ambiente:

  • Assicurati di aver configurato le credenziali predefinite dell'applicazione come descritto in Utilizzare OAuth.
  • Imposta PROJECT_NUMBER_OR_ID sul numero o sull'ID del tuo progetto Cloud.

    Il seguente comando invia una richiesta OptimizeToursLongRunning all'API Route Optimization e riceve un ID operazione associato. Il metodo GetOperation può essere utilizzato per eseguire query sullo stato dell'operazione. Una volta completata l'operazione, i metadati contengono anche l'OptimizeToursResponse finale.

    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

Come BatchOptimizeTours, puoi utilizzare OptimizeToursUri per continuare a archiviare la richiesta e la risposta di ottimizzazione su Google Cloud Storage. Gli URI Cloud Storage devono essere specificati nel messaggio di richiesta OptimizeToursUri. Lo stato Operation restituito è associato solo al singolo OptimizeToursRequest inviato.

Esempio: inviare una richiesta OptimizeToursUri

Prima di effettuare una richiesta, sostituisci i seguenti parametri con valori appropriati per il tuo ambiente:

  • Assicurati di aver configurato le credenziali predefinite dell'applicazione come descritto in Utilizzare OAuth.
  • Imposta PROJECT_NUMBER_OR_ID sul numero o sull'ID del tuo progetto Cloud.

    Il seguente comando invia una richiesta OptimizeToursUri all'API Route Optimization e riceve un ID operazione associato. Utilizza il metodo GetOperation per eseguire una query sullo stato dell'operazione. Una volta completata l'operazione, OptimizeToursResponse viene archiviato in remoto nel percorso URI di output fornito nella richiesta.

    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