Trabaja con operaciones de larga duración

En esta página, se describe cómo manejar operaciones de larga duración en AutoML Natural Language.

Introducción

Algunas operaciones de AutoML Natural Language demoran un poco en completarse:

  • datasets.importData
  • datasets.exportData
  • datasets.delete
  • models.batchPredict
  • models.create
  • models.delete
  • models.deploy
  • models.undeploy

Si utilizas la IU de AutoML Natural Language, puedes cerrar la ventana del navegador sin afectar la operación. El panel se actualiza cuando se completa la operación.

Cuando realizas una llamada a la API que demora mucho tiempo en completarse, la llamada inicial se muestra de inmediato, aunque la operación aún se esté ejecutando. Existen algunos métodos auxiliares que puedes usar para determinar el estado de una operación de larga duración.

AutoML Natural Language envía un correo electrónico a los propietarios del proyecto cuando se completan las operaciones de larga duración.

Consulta el estado de una operación

Puedes consultar el estado de una operación de larga duración. Este enfoque no bloquea tu programa, pero debes seguir consultando hasta que se complete la operación.

Para obtener el estado de la operación, usa el ID de operación de la respuesta que recibiste cuando iniciaste la operación.

En el comando siguiente, reemplaza operation-name por el nombre completo de tu operación. El nombre completo tiene el siguiente formato: projects/{project-id}/locations/us-central1/operations/{operation-id}.

curl -X GET \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json" \
  https://automl.googleapis.com/v1/operation-name

Deberías ver un resultado similar al siguiente para una operación de importación: en el resultado, hay un objeto metadata que contiene información específica para el tipo de solicitud. El campo done muestra si se completó o no la operación. Si se completó la operación, la respuesta contiene información sobre el efecto de la solicitud.

{
  "name": "projects/1234/locations/us-central1/operations/TBL2126599795587061786",
  "metadata": {
...
  },
  "done": true,
  "response": {
...
  }
}

Espera por una operación

Si deseas bloquear la ejecución en esta operación, puedes esperar a que se complete (o hasta que se agote el tiempo de espera que especifiques).

En el siguiente comando, reemplaza:

  • operation-name por el nombre completo de tu operación El nombre completo tiene el siguiente formato: projects/{project-id}/locations/us-central1/operations/{operation-id}.

  • timeout con la cantidad máxima de tiempo que deseas esperar, en (fracción de) segundos, finalizada con “s”. Por ejemplo, “4.5s” hace que el comando de espera vuelva en cuatro segundos y medio si la operación aún se está ejecutando.

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json" \
   -d '{"timeout":"timeout"}' \
  https://automl.googleapis.com/v1/operation-name:wait

Cancela una operación

Puedes cancelar una tarea de importación o una de entrenamiento con el ID de operación, pero no se garantiza que esto suceda correctamente. No se puede borrar una operación.

En el comando siguiente, reemplaza operation-name por el nombre completo de tu operación. El nombre completo tiene el siguiente formato: projects/{project-id}/locations/us-central1/operations/{operation-id}.

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  https://automl.googleapis.com/v1/operation-name:cancel