Méthodes d'API d'optimisation non bloquantes

Ce guide présente le lancement expérimental des méthodes d'API OptimizeToursLongRunning et OptimizeToursUri, qui permettent aux utilisateurs d'effectuer des requêtes d'optimisation uniques non bloquantes. Dans une optimisation non bloquante, l'utilisateur reçoit rapidement un proto d'opération de la méthode qui peut être utilisé pour référencer l'état de l'optimisation en appelant GetOperation. Pour en savoir plus, consultez la section Opérations de longue durée.

Ces méthodes non bloquantes offrent des avantages de fiabilité par rapport à la méthode bloquante OptimizeTours, car le client n'a pas besoin de maintenir la connexion au serveur pendant l'exécution de l'optimisation. De plus, ces nouvelles méthodes facilitent le débogage des échecs par rapport à BatchOptimizeTours, car chaque optimisation est associée à une seule opération de longue durée (LRO).

Les utilisateurs qui préfèrent insérer la requête d'optimisation peuvent utiliser la méthode OptimizeToursLongRunning, tandis que ceux qui préfèrent importer les requêtes et la réponse de lecture à l'aide de Google Cloud Storage peuvent utiliser la méthode OptimizeToursUri.

OptimizeToursLongRunning

Exemple: Envoyer une requête OptimizeToursLongRunning

Avant d'envoyer une requête, remplacez les paramètres suivants par les valeurs appropriées pour votre environnement:

  • Assurez-vous que les identifiants par défaut de l'application sont configurés comme décrit dans la section Utiliser OAuth.
  • Définissez PROJECT_NUMBER_OR_ID sur le numéro ou l'ID de votre projet Cloud.

    La commande suivante envoie une requête OptimizeToursLongRunning à l'API Route Optimization et reçoit un ID d'opération qui lui est associé. La méthode GetOperation permet d'interroger l'état de l'opération. Une fois l'opération terminée, les métadonnées contiennent également l'OptimizeToursResponse final.

    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

Comme BatchOptimizeTours, vous pouvez utiliser OptimizeToursUri pour continuer à stocker votre requête et votre réponse d'optimisation dans Google Cloud Storage. Les URI Cloud Storage doivent être spécifiés dans le message de requête OptimizeToursUri. L'état Operation renvoyé n'est associé qu'à l'OptimizeToursRequest unique envoyé.

Exemple: Envoyer une requête OptimizeToursUri

Avant d'envoyer une requête, remplacez les paramètres suivants par les valeurs appropriées pour votre environnement:

  • Assurez-vous que les identifiants par défaut de l'application sont configurés comme décrit dans la section Utiliser OAuth.
  • Définissez PROJECT_NUMBER_OR_ID sur le numéro ou l'ID de votre projet Cloud.

    La commande suivante envoie une requête OptimizeToursUri à l'API Route Optimization et reçoit un ID d'opération qui lui est associé. Utilisez la méthode GetOperation pour interroger l'état de l'opération. Une fois l'opération terminée, OptimizeToursResponse est stocké à distance sur le chemin d'accès de l'URI de sortie fourni dans la requête.

    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