Dialogflow API의 일부 메서드는 장기 실행 작업을 반환합니다. 이러한 메서드는 비동기적이며 메서드가 응답을 반환하면 작업이 완료되지 않을 수 있습니다. 상태를 확인하거나 작업을 취소할 수 있습니다.
작업 상태 가져오기
다음은 작업 상태를 폴링하는 방법을 보여줍니다. 확인해야 할 작업이 많으면 호출을 비율 제한하거나 목록 메서드를 대신 사용해야 합니다.
Operations
유형의 get
메서드를 호출합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: GCP 프로젝트 ID
- OPERATION_ID: 작업 ID
- API_VERSION:
v2
또는v2beta1
HTTP 메서드 및 URL:
GET https://dialogflow.googleapis.com/API_VERSION /projects/my-gcp-project /operations/OPERATION_ID
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
다음 명령어를 실행합니다.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project:PROJECT_ID " \
"https://dialogflow.googleapis.com/API_VERSION /projects/my-gcp-project /operations/OPERATION_ID "
PowerShell(Windows)
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID " }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://dialogflow.googleapis.com/API_VERSION /projects/my-gcp-project /operations/OPERATION_ID " | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_ID /operations/some-operation-name-OPERATION_ID ", "metadata": { "@type": "type.googleapis.com/google.cloud.dialogflow.API_VERSION .SomeOperationType", "state": "DONE" }, "done": true, ... }
작업이 완료되면 SUCCESSFUL
의 state
값이 반환됩니다.
작업 나열 및 취소
특정 작업을 가져오는 것 외에도 작업을 나열하고 취소할 수 있습니다.
Operations
유형은 list
및 cancel
메서드를 참조하세요.
list
결과에는 현재 태스크와 무관한 작업이 포함될 수 있으므로 결과를 필터링해야 합니다.