장기 실행 작업 다루기

이 페이지에서는 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 UI를 사용하는 경우 브라우저 창을 닫아도 작업에 영향을 주지 않으며 패널은 작업이 끝나면 업데이트됩니다.

완료하는 데 시간이 오래 걸리는 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;를 입력하면 대시 명령어는 작업이 진행 중이라면 4.5초 후에 반환합니다.

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