Tugas push yang sedang diproses melalui task queue bisa gagal karena berbagai alasan. Jika pengendali gagal menjalankan tugas (sehingga menampilkan kode status HTTP apa pun di luar rentang 200–299), App Engine akan mencoba kembali tugas tersebut hingga berhasil.
Secara default, sistem akan mengurangi tingkat percobaan ulang secara bertahap agar tidak membebani aplikasi Anda dengan terlalu banyak permintaan. Namun, sistem akan menjadwalkan upaya percobaan ulang agar dilakukan maksimal satu jam sekali hingga tugas berhasil.
Mencoba ulang tugas
Anda dapat menyesuaikan skema Anda sendiri untuk percobaan ulang tugas dengan
menambahkan parameter
coba ulang
di
. Dengan penambahan ini, Anda dapat menentukan jumlah maksimum percobaan ulang tugas yang gagal dalam antrean tertentu. Anda juga dapat menetapkan batas waktu untuk percobaan ulang dan
mengontrol interval antar-percobaan.queue.yaml
Contoh berikut menunjukkan berbagai skenario percobaan ulang:
- Dalam
fooqueue
, tugas dicoba ulang hingga tujuh kali dan hingga dua hari sejak upaya eksekusi pertama. Setelah kedua batas terlampaui, tugas akan gagal secara permanen. - Pada
barqueue
, App Engine akan mencoba ulang tugas, meningkatkan interval secara linear di antara setiap percobaan ulang hingga mencapai backoff maksimum dan mencoba ulang tanpa batas pada interval maksimum (sehingga interval antar permintaan adalah 10 detik, 20 detik, 30 detik, ..., 190 detik, 200 detik, 200 detik, ...). - Dalam
bazqueue
, interval percobaan ulang dimulai pada 10 detik, ditingkatkan tiga kali lipat, lalu ditingkatkan secara linear, dan akhirnya dicoba ulang tanpa batas waktu pada interval maksimum (sehingga interval antar permintaan adalah 10 detik, 20 detik, 40 detik, 80 detik, 160 detik, 240 detik, 300 detik, 300 detik, ...).
<?xml version="1.0" encoding="utf-8"?>
<queue-entries>
<queue>
<name>fooqueue</name>
<rate>1/s</rate>
<retry-parameters>
<task-retry-limit>7</task-retry-limit>
<task-age-limit>2d</task-age-limit>
</retry-parameters>
</queue>
<queue>
<name>barqueue</name>
<rate>1/s</rate>
<retry-parameters>
<min-backoff-seconds>10</min-backoff-seconds>
<max-backoff-seconds>200</max-backoff-seconds>
<max-doublings>0</max-doublings>
</retry-parameters>
</queue>
<queue>
<name>bazqueue</name>
<rate>1/s</rate>
<retry-parameters>
<min-backoff-seconds>10</min-backoff-seconds>
<max-backoff-seconds>300</max-backoff-seconds>
<max-doublings>3</max-doublings>
</retry-parameters>
</queue>
</queue-entries>
Langkah selanjutnya
- Pelajari parameter task queue lebih lanjut.