本页面介绍了如何在 AutoML Natural Language 中处理长时间运行的操作。
简介
AutoML Natural Language 中的一些操作需要一段时间才能完成,例如:
- datasets.importData
- datasets.exportData
- datasets.delete
- models.batchPredict
- models.create
- models.delete
- models.deploy
- models.undeploy
如果您使用的是 AutoML Natural Language 界面,您可以关闭浏览器窗口且此举不会对操作产生影响。操作完成后,面板会更新。
当您进行需要很长时间才能完成的 API 调用时,即使操作仍在运行,初始调用也会立即返回。您可以使用一些辅助方法来确定长时间运行的操作的状态。
长时间运行的操作完成后,AutoML Natural Language 会向项目所有者发送电子邮件。
轮询操作状态
您可以轮询长时间运行的操作的状态。此方法不会阻止您的程序,但您必须持续轮询直到操作完成。
要获取操作状态,请使用启动操作时的响应中的操作 ID。
在下面的命令中,将 operation-name 替换为操作的完整名称。完整名称的格式为 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
对于导入操作,您应该看到类似于如下的输出:此输出中有一个 metadata
对象包含特定于请求类型的信息。done
字段显示操作是否完成。如果操作已完成,响应会包含有关请求效果的信息。
{ "name": "projects/1234/locations/us-central1/operations/TBL2126599795587061786", "metadata": { ... }, "done": true, "response": { ... } }
等待操作
如果要阻止此操作的执行,可以等待操作完成(或直到您指定的超时)。
在以下命令中,进行如下替换:
将 operation-name 替换为操作的完整名称。完整名称的格式为
projects/{project-id}/locations/us-central1/operations/{operation-id}
。将 timeout 替换为您希望等待的最长时间,以秒为单位(支持小数)并以“s”结尾。例如,在等待命令中使用“4.5s”会使仍在运行的操作在四秒半后返回。
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
取消操作
您可以使用操作 ID 取消导入任务或训练任务。无法保证成功取消。不支持删除操作。
在下面的命令中,将 operation-name 替换为操作的完整名称。完整名称的格式为 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