Utilizzo delle operazioni a lunga esecuzione

Questa pagina descrive come gestire le operazioni a lunga esecuzione in AutoML Natural Language.

Introduzione

Il completamento di alcune operazioni in AutoML Natural Language richiede un po' di tempo:

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

Se utilizzi l'interfaccia utente di AutoML Natural Language, puoi chiudere la finestra del browser senza influire sull'operazione. Il riquadro si aggiorna al termine dell'operazione.

Quando effettui una chiamata API che richiede molto tempo, la chiamata iniziale restituisce immediatamente, anche se l'operazione è ancora in esecuzione. Esistono alcuni metodi helper che puoi utilizzare per determinare lo stato di un'operazione a lunga esecuzione.

AutoML Natural Language invia ai proprietari del progetto un'email quando vengono completate le operazioni a lunga esecuzione.

Polling per lo stato di un'operazione

Puoi eseguire il polling per verificare lo stato di un'operazione a lunga esecuzione. Questo approccio non blocca il programma, ma devi continuare a eseguire il polling fino al completamento dell'operazione.

Per ottenere lo stato dell'operazione, utilizza l'ID operazione dalla risposta quando hai avviato l'operazione.

Nel comando seguente, sostituisci operation-name con il nome completo dell'operazione. Il nome completo ha il 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

Dovresti vedere un output simile al seguente per un'operazione di importazione: nell'output è presente un oggetto metadata che contiene informazioni specifiche per il tipo di richiesta. Il campo done mostra se l'operazione è stata completata o meno. Se l'operazione è completata, la risposta contiene informazioni sull'effetto della richiesta.

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

In attesa di un'operazione

Se vuoi bloccare l'esecuzione di questa operazione, puoi attendere il completamento dell'operazione (o fino a un timeout da te specificato).

Nel comando seguente, sostituisci:

  • operation-name con il nome completo dell'operazione. Il nome completo ha il formato projects/{project-id}/locations/us-central1/operations/{operation-id}.

  • timeout con il tempo massimo di attesa, in secondi (frazionari), terminati da "s". Ad esempio, "4,5 s" fa sì che il comando di attesa restituisca quattro secondi e mezzo se l'operazione è ancora in esecuzione.

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

Annullamento di un'operazione

Puoi annullare un'attività di importazione o addestramento utilizzando l'ID operazione. Non è garantito che l'annullamento vada a buon fine. L'eliminazione di un'operazione non è supportata.

Nel comando riportato di seguito, sostituisci operation-name con il nome completo dell'operazione. Il nome completo ha il 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