Halaman ini menunjukkan cara mengganti konfigurasi waktu tunggu default dan mengonfigurasi kebijakan percobaan ulang menggunakan library klien Spanner.
Library klien menggunakan setelan waktu tunggu default dan setelan kebijakan percobaan ulang yang ditentukan dalam file konfigurasi berikut.
- spanner_grpc_service_config.json
- spanner_admin_instance_grpc_service_config.json
- spanner_admin_database_grpc_service_config.json
Dalam file konfigurasi, waktu tunggu default untuk operasi yang memerlukan
waktu singkat, seperti CreateSession
, adalah 30 detik. Operasi yang lebih panjang, seperti kueri atau operasi baca, memiliki waktu tunggu default 3.600 detik. Sebaiknya gunakan
default ini. Namun, Anda dapat menyetel kebijakan waktu tunggu khusus atau percobaan ulang dalam
aplikasi jika perlu.
Jika Anda memutuskan untuk mengubah waktu tunggu, setel ke jumlah waktu sebenarnya saat aplikasi dikonfigurasi untuk menunggu hasilnya.
Jangan mengonfigurasi kebijakan percobaan ulang yang lebih agresif daripada default, karena terlalu banyak percobaan ulang dapat membebani backend dan membatasi permintaan Anda.
Kebijakan percobaan ulang ditentukan dalam setiap cuplikan, dengan karakteristik berikut:
- Durasi waktu tunggu awal atau awal sebelum mencoba lagi permintaan.
- Penundaan maksimum.
- Pengganda yang akan digunakan dengan waktu tunggu sebelumnya untuk menghitung waktu tunggu berikutnya, hingga nilai maksimum tercapai.
- Serangkaian kode error untuk operasi percobaan ulang.
Dalam contoh berikut, waktu tunggu 60 detik ditetapkan untuk operasi yang ditentukan.
Jika operasi memerlukan waktu lebih lama dari waktu tunggu ini, operasi akan gagal dengan error DEADLINE_EXCEEDED
.
Jika operasi gagal dengan kode error UNAVAILABLE
, misalnya, jika ada
masalah jaringan sementara, operasi akan dicoba lagi. Klien
menunggu selama 500 md sebelum memulai upaya percobaan ulang pertama. Jika percobaan ulang pertama
gagal, klien akan menunggu selama 1,5 * 500 md = 750 md sebelum memulai percobaan ulang
kedua. Penundaan percobaan ulang ini akan terus meningkat hingga operasi
berhasil atau mencapai penundaan percobaan ulang maksimum 16 detik. Operasi gagal dengan error DEADLINE_EXCEEDED
jika total waktu yang dihabiskan untuk mencoba operasi melebihi total nilai waktu tunggu 60 detik.