Operasi Polling yang Berjalan Lama

Halaman ini menjelaskan cara melakukan polling secara terprogram untuk resource operasi yang berjalan lama yang ditampilkan oleh metode di Service Infrastructure API yang memerlukan waktu lama untuk diselesaikan, seperti service.rollouts.create. Setelah operasi selesai, kolom done akan ditetapkan ke benar (true).

Untuk memeriksa operasi, panggil metode operations.get berulang kali dengan backoff 10 detik yang direkomendasikan hingga operasi selesai:

# This is an example of getting a pending `Operation` resource.
gcurl https://servicemanagement.googleapis.com/v1/operations/rollouts.endpointsapis.appspot.com:2016-07-16r2
{
  "name": "operations/rollouts.endpointsapis.appspot.com:2016-07-16r2",
  "metadata": {
    "@type": "type.googleapis.com/google.api.servicemanagement.v1.OperationMetadata",
    "resourceNames": [
      "services/endpointsapis.appspot.com/rollouts/2016-07-16r2"
    ],
    "steps": [
      {
        "description": "update Service Controller",
        "status": "In_PROGRESS"
      }
    ],
    "progressPercentage": 0,
    "startTime": "2016-07-16T00:56:55.737Z",
  }
  "response": {
  "@type": "type.googleapis.com/google.api.servicemanagement.v1.Rollout",
  "rolloutId": "2016-07-16r2",
  "createTime": "2016-07-16T00:56:55.724Z",
  "serviceSelectionStrategy": {
    "serviceConfigIds": [
      "2016-07-16r1"
    ]
  },
  "serviceName": "endpointsapis.appspot.com"
}

# This is an example of getting a done `Operation` resource.
gcurl https://servicemanagement.googleapis.com/v1/operations/rollouts.endpointsapis.appspot.com:2016-07-16r2
{
  "name": "operations/rollouts.endpointsapis.appspot.com:2016-07-16r2",
  "metadata": {
    "@type": "type.googleapis.com/google.api.servicemanagement.v1.OperationMetadata",
    "resourceNames": [
      "services/endpointsapis.appspot.com/rollouts/2016-07-16r2"
    ],
    "steps": [
      {
        "description": "update Service Controller",
        "status": "Done"
      }
    ],
    "progressPercentage": 100,
    "startTime": "2016-07-16T00:56:55.737Z",
  }
  "done": true,
  "response": {
  "@type": "type.googleapis.com/google.api.servicemanagement.v1.Rollout",
  "rolloutId": "2016-07-16r2",
  "createTime": "2016-07-16T00:56:55.724Z",
  "serviceSelectionStrategy": {
    "serviceConfigIds": [
      "2016-07-16r1"
    ]
  },
  "serviceName": "endpointsapis.appspot.com"
}