Menetapkan parameter percobaan ulang untuk tugas

Saat membuat tugas, Anda dapat menentukan jumlah maksimum percobaan ulang tugas yang gagal, menetapkan batas waktu untuk percobaan ulang, dan mengontrol interval antar-percobaan menggunakan projects.locations.queues.tasks.create metode. Setelah berhasil dijalankan, tugas akan dihapus dari antrean. Dalam semua kasus, batas retensi tugas maksimum juga berlaku.

Konfigurasi percobaan ulang tingkat tugas ini menggantikan konfigurasi percobaan ulang tingkat antrean untuk tugas tersebut.

Mengonfigurasi percobaan ulang saat membuat tugas

Contoh berikut menunjukkan cara menetapkan parameter percobaan ulang saat membuat tugas target HTTP dengan mengirim permintaan langsung ke Cloud Tasks API. Anda dapat menggunakan parameter percobaan ulang yang sama saat membuat tugas App Engine. Untuk mengetahui detail parameter selengkapnya, lihat RetryConfig setelan untuk Task resource.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: wajib. Project ID dari project tempat tugas akan dibuat. Google Cloud
  • REGION: wajib. Region tempat antrean di-deploy—misalnya, us-central1.
  • QUEUE_ID: wajib. ID antrean tempat tugas akan ditambahkan.
  • URL: wajib. URL yang sepenuhnya memenuhi syarat tempat permintaan akan dikirim. String ini harus diawali dengan http:// atau https://—misalnya: https://www.example.com.
  • SERVICE_ACCOUNT_EMAIL: opsional. Email akun layanan yang digunakan untuk membuat token otorisasi yang disertakan dalam permintaan yang dikirim ke target saat menjalankan tugas. Akun layanan harus berada dalam project yang sama dengan antrean. Pemanggil harus memiliki izin iam.serviceAccounts.actAs untuk akun layanan.

    Untuk membuat token akses OAuth2, bukan token OpenID Connect, ganti kolom oidcToken dengan oauthToken untuk menentukan email akun layanan.

  • MAX_ATTEMPTS: opsional. Jumlah maksimum percobaan untuk suatu tugas, termasuk yang pertama. Untuk mengizinkan percobaan ulang tanpa batas, tetapkan nilai ini ke -1. MAX_RETRY_DURATION tetap berlaku meskipun MAX_ATTEMPTS tercapai atau ditetapkan ke -1.
  • MAX_RETRY_DURATION: opsional. Jumlah waktu maksimum untuk mencoba ulang tugas yang gagal, diukur sejak tugas pertama kali dicoba. Nilai harus berupa string yang diakhiri dengan "s", seperti 5s. Untuk menentukan durasi tanpa batas, tetapkan nilai ini ke 0s. MAX_ATTEMPTS tetap berlaku meskipun MAX_RETRY_DURATION tercapai atau ditetapkan ke 0s.
  • MIN_INTERVAL: opsional. Jumlah waktu minimum untuk menunggu antar-percobaan ulang. Nilai harus berupa string yang diakhiri dengan "s", seperti 5s.
  • MAX_INTERVAL: opsional. Jumlah waktu maksimum untuk menunggu antar-percobaan ulang. Nilai harus berupa string yang diakhiri dengan "s", seperti 5s.
  • MAX_DOUBLINGS: opsional. Jumlah maksimum interval antara percobaan ulang tugas yang gagal akan digandakan sebelum peningkatan menjadi konstan. Interval percobaan ulang tugas dimulai dari MIN_INTERVAL, lalu digandakan MAX_DOUBLINGS kali, lalu meningkat secara linear, dan akhirnya dicoba ulang pada interval MAX_INTERVAL hingga MAX_ATTEMPTS kali.

    Misalnya, jika MIN_INTERVAL adalah 10s, MAX_INTERVAL adalah 300s, dan MAX_DOUBLINGS adalah 3, interval percobaan ulang akan digandakan 3 kali, meningkat secara linear sebesar 2^3 * 10 detik, lalu dicoba ulang pada interval MAX_INTERVAL hingga tugas telah dicoba MAX_ATTEMPTS kali: 10 detik, 20 detik, 40 detik, 80 detik, 160 detik, 240 detik, 300 detik, 300 detik, dan seterusnya.

  • SCHEDULE_TIME: opsional. Waktu saat tugas dijadwalkan untuk dicoba, dalam format RFC 3339—misalnya, 2026-10-02T15:01:23Z. Jika waktu tidak ditetapkan atau berada di masa lalu, Cloud Tasks akan menetapkannya ke waktu saat ini.

Meminta isi JSON:

{
  "task": {
    "httpRequest": {
      "url": "URL",
      "httpMethod": "POST",
      "oidcToken": {
        "serviceAccountEmail": "SERVICE_ACCOUNT_EMAIL"
      }
    },
    "retryConfig": {
      "maxAttempts": MAX_ATTEMPTS,
      "maxRetryDuration": "MAX_RETRY_DURATION",
      "minBackoff": "MIN_INTERVAL",
      "maxBackoff": "MAX_INTERVAL",
      "maxDoublings": MAX_DOUBLINGS
    },
    "scheduleTime": "SCHEDULE_TIME"
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Jika berhasil, isi respons akan memuat instance resource Task yang baru dibuat.

{
  "name": "projects/PROJECT_ID/locations/REGION/queues/QUEUE_ID/tasks/TASK_ID",
  "httpRequest": {
    "url": "URL",
    "httpMethod": "POST",
    "headers": {
      "User-Agent": "Google-Cloud-Tasks"
    },
    "oidcToken": {
      "serviceAccountEmail": "SERVICE_ACCOUNT_EMAIL",
      "audience": "URL"
    }
  },
  "retryConfig": {
    "maxAttempts": MAX_ATTEMPTS,
    "maxRetryDuration": "MAX_RETRY_DURATION",
    "minBackoff": "MIN_INTERVAL",
    "maxBackoff": "MAX_INTERVAL",
    "maxDoublings": MAX_DOUBLINGS
  },
  "scheduleTime": "SCHEDULE_TIME",
  "createTime": "2026-04-30T19:11:50Z",
  "dispatchDeadline": "600s",
  "view": "BASIC"
}

Langkah berikutnya