Mencoba lagi tugas

Secara default, jika tugas Cloud Scheduler tidak menerima konfirmasi dari pengendali, tugas tersebut dianggap gagal, dan akan dicoba lagi sesuai dengan penundaan eksponensial yang telah Anda konfigurasi. Anda dapat menentukan perilaku percobaan ulang ini dengan cara berikut saat membuat atau memperbarui tugas Cloud Scheduler:

Setelan coba lagi

Tabel berikut menjelaskan setelan percobaan ulang yang dapat Anda konfigurasi.

Upaya percobaan ulang maksimum

Jumlah upaya yang akan dilakukan sistem untuk menjalankan tugas menggunakan prosedur backoff eksponensial yang dijelaskan oleh maxDoublings.

Deskripsi

Jika retryCount disetel ke angka bukan nol, Cloud Scheduler akan mencoba kembali tugas yang gagal, menggunakan backoff eksponensial, sebanyak retryCount kali hingga tugas berhasil atau jumlah percobaan ulang habis. Perhatikan bahwa waktu eksekusi terjadwal berikutnya mungkin dilewati jika percobaan ulang berlanjut hingga waktu tersebut.

Jika retryCount adalah 0 (dan jika maxRetryDuration juga 0), upaya tugas tidak akan dicoba lagi jika gagal. Sebagai gantinya, Cloud Scheduler akan menunggu waktu eksekusi terjadwal berikutnya.

Nilai yang lebih besar dari 5 dan nilai negatif tidak diizinkan.

Default Defaultnya adalah 0.
Label konsol Upaya percobaan ulang maksimum
Flag CLI --max-retry-attempts
Kolom API retryCount

Durasi percobaan ulang maksimum

Batas waktu untuk mencoba kembali tugas yang gagal, diukur dari waktu saat eksekusi pertama kali dicoba. Jika ditentukan dengan retryCount, tugas akan dicoba lagi hingga kedua batas tercapai.

Deskripsi

Durasi dalam detik dengan maksimal sembilan digit pecahan, yang diakhiri dengan "s"—misalnya, "3.5s".

Durasi 0 berarti durasi percobaan ulang tidak terbatas. Namun, jika retryCount juga 0, upaya tugas tidak akan dicoba ulang jika gagal.

Default Defaultnya adalah 0 detik.
Label konsol Durasi percobaan ulang maksimum
Flag CLI --max-retry-duration
Kolom API maxRetryDuration

Durasi backoff minimum

Jumlah waktu minimum untuk menunggu sebelum mencoba kembali tugas setelah gagal.

Deskripsi

Durasi dalam detik dengan maksimal sembilan digit pecahan, yang diakhiri dengan "s"—misalnya, "3.5s".

Default Defaultnya adalah 5 detik.
Label konsol Durasi backoff minimum
Flag CLI --min-backoff
Kolom API minBackoffDuration

Durasi backoff maksimum

Jumlah waktu maksimum untuk menunggu sebelum mencoba kembali tugas setelah gagal.

Deskripsi

Durasi dalam detik dengan maksimal sembilan digit pecahan, yang diakhiri dengan "s"—misalnya, "3.5s".

Default Defaultnya adalah 3.600 detik (1 jam).
Label konsol Durasi backoff maksimum
Flag CLI --max-backoff
Kolom API maxBackoffDuration

Penggandaan maksimum

Jumlah maksimum interval antara percobaan ulang tugas yang gagal akan dilipatgandakan sebelum peningkatan menjadi konstan.

Deskripsi Waktu di antara upaya percobaan ulang akan digandakan maxDoublings kali.

Interval percobaan ulang tugas dimulai pada minBackoffDuration, lalu digandakan maxDoublings kali, lalu ditingkatkan secara linear, dan akhirnya dicoba ulang pada interval maxBackoffDuration hingga retryCount kali. Contoh:

Jika minBackoffDuration adalah 10 detik, maxBackoffDuration adalah 300 detik, dan maxDoublings adalah 3:

  1. Pekerjaan akan dicoba lagi dalam 10 detik.
  2. Interval percobaan ulang akan digandakan tiga kali.
  3. Interval percobaan ulang kemudian akan meningkat secara linear sebesar 2^3 * 10 detik.
  4. Jika berlaku, tugas akan dicoba ulang dengan interval maxBackoffDuration hingga tugas telah dicoba retryCount kali (maksimal 5 kali).

Dengan demikian, permintaan akan dicoba ulang pada 10 detik, 20 detik, 40 detik, 80 detik, 160 detik.

Jika minBackoffDuration adalah 10 detik, maxBackoffDuration adalah 120 detik, dan maxDoublings adalah 2:

  1. Pekerjaan akan dicoba lagi dalam 10 detik.
  2. Interval percobaan ulang akan digandakan dua kali.
  3. Interval percobaan ulang kemudian akan meningkat secara linear sebesar 2^3 * 10 detik.
  4. Jika berlaku, tugas akan dicoba ulang dengan interval maxBackoffDuration hingga tugas telah dicoba retryCount kali (maksimal 5 kali).

Dengan demikian, permintaan akan dicoba ulang pada 10 detik, 20 detik, 40 detik, 120 detik, 120 detik.

Default Defaultnya adalah 5.
Label konsol Penggandaan maksimum
Flag CLI --max-doublings
Kolom API maxDoublings

Contoh percobaan ulang

Contoh berikut menunjukkan perilaku percobaan ulang saat tugas Cloud Scheduler tidak berhasil diselesaikan.

Jika retryCount dan maxRetryDuration tidak ditetapkan

Kedua setelan ditetapkan secara default ke 0 dan tugas tidak akan dicoba ulang sama sekali.

Perhatikan bahwa Cloud Scheduler akan mencoba menjalankan tugas pada waktu eksekusi terjadwal berikutnya.

Jika retryCount dan maxRetryDuration ditetapkan

Tugas akan dicoba ulang setidaknya retryCount kali hingga mencapai maxRetryDuration.

Perhatikan bahwa tugas dapat dicoba ulang lebih banyak daripada retryCount.

Jika retryCount ditetapkan dan maxRetryDuration tidak ditetapkan

Setelan maxRetryDuration secara default adalah 0 dan tugas akan dicoba ulang persis retryCount kali.

Jika retryCount tidak ditetapkan dan maxRetryDuration ditetapkan

Tugas akan dicoba ulang beberapa kali (maksimal 5 kali) atau hingga mencapai maxRetryDuration.