Metodi API di ottimizzazione non bloccanti singoli

Questa guida illustra il lancio sperimentale dei metodi dell'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 Operation 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 vantaggi in termini di affidabilità rispetto al metodo bloccante OptimizeTours, 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 inserire la richiesta di ottimizzazione in linea possono utilizzare il metodo OptimizeToursLongRunning, mentre gli utenti che preferiscono caricare le richieste e la risposta di lettura utilizzando Google Cloud Storage possono utilizzare il metodo OptimizeToursUri.

OptimizeToursLongRunning

Esempio: effettua una richiesta OptimizeToursLongRunning

Prima di effettuare una richiesta, sostituisci i seguenti parametri con i 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. Al termine dell'operazione, i metadati contengono anche il valore finale 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

Come BatchOptimizeTours, puoi utilizzare OptimizeToursUri per continuare a memorizzare 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: effettua una richiesta OptimizeToursUri

Prima di effettuare una richiesta, sostituisci i seguenti parametri con i 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. Al termine dell'operazione, OptimizeToursResponse viene memorizzato remotely nel percorso dell'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