Google Calendar API memiliki kuota untuk memastikan API tersebut digunakan secara adil oleh semua pengguna. Ada tiga batasan penting yang perlu dipertimbangkan saat menggunakan Calendar API:
- Kuota penggunaan API diterapkan per project dan per pengguna. Lihat bagian berikutnya untuk mengetahui informasi selengkapnya.
- Batas penggunaan Kalender umum: Hindari batas penggunaan Kalender.
- Batas operasional: Anda mungkin dibatasi kapasitasnya kapan saja. Misalnya, jika Anda mencoba menulis ke satu kalender secara berurutan.
Jenis kuota penggunaan Kalender API
Ada dua jenis kuota yang diterapkan:
- Per menit per project: Ini adalah jumlah permintaan yang dibuat oleh project Google Cloud Anda.
- Per menit per project per pengguna: Ini adalah jumlah permintaan yang dibuat oleh satu pengguna tertentu di project Cloud Anda. Batasan ini bertujuan untuk membantu Anda memastikan distribusi penggunaan yang adil di antara pengguna.
Kuota dihitung per menit menggunakan periode geser, sehingga lonjakan traffic yang cepat yang melebihi kuota per menit selama satu menit akan mengakibatkan pembatasan kapasitas selama periode berikutnya untuk memastikan bahwa, rata-rata, penggunaan Anda tetap dalam kuota.
Jika salah satu kuota terlampaui, Anda akan dibatasi kapasitas dan menerima
kode status 403 usageLimits
atau
kode status 429 usageLimits
untuk kueri Anda. Jika hal ini terjadi, berikut tindakan yang dapat Anda lakukan:
- Pastikan Anda mengikuti semua praktik terbaik: gunakan backoff eksponensial, acak pola traffic, gunakan notifikasi push.
- Jika project Anda berkembang dan memiliki lebih banyak pengguna, Anda dapat meminta peningkatan kuota per project.
- Jika batas kuota per pengguna tercapai, Anda dapat melakukan hal berikut:
- Jika Anda menggunakan akun layanan, alokasikan beban ke pengguna atau bagi beban tersebut di antara beberapa akun layanan.
- Meskipun Anda dapat meminta peningkatan kuota per pengguna, secara umum tidak direkomendasikan untuk meningkatkannya di atas nilai default karena aplikasi Anda mungkin mulai mencapai jenis batas lainnya, misalnya batas penggunaan kalender umum, atau batas operasional.
Permintaan penambahan kuota
Untuk melihat atau mengubah batas penggunaan untuk project Anda atau meminta penambahan kuota, lakukan hal berikut ini:
- Jika Anda belum memiliki akun penagihan untuk project, buat akun penagihan.
- Buka halaman API yang Diaktifkan dari library API di Konsol API, lalu pilih API dari daftar.
- Untuk melihat dan mengubah setelan terkait kuota, pilih Kuota. Untuk melihat statistik penggunaan, pilih Penggunaan.
Menggunakan backoff eksponensial
Jika kami ingin Anda memperlambat kecepatan permintaan, kami akan menampilkan respons "usageLimits" 403 atau respons 429 (lihat dokumentasi error lengkap). Ini bukan error fatal dan sebaiknya Anda mencoba lagi permintaan tersebut setelah interval yang singkat. Jika permintaan masih datang terlalu cepat, kami akan bertanya lagi, dan seterusnya. Agar berfungsi dengan benar, penundaan antara permintaan harus meningkat dari waktu ke waktu.
Umumnya, Anda harus menggunakan backoff eksponensial terpotong; Dokumentasi Cloud Storage memiliki penjelasan yang baik tentang cara kerjanya dan algoritma yang lebih disukai. Jika Anda menggunakan library klien Google, hal ini biasanya akan ditangani untuk Anda; lihat dokumentasi library Anda. Biasanya, Anda harus menggunakan implementasi library bukan menulis sendiri.
Mengacak pola traffic
Klien Kalender rentan terhadap pola traffic yang tajam yang disebabkan oleh beberapa klien yang melakukan operasi secara bersamaan. Misalnya, praktik buruk umum untuk klien Kalender adalah melakukan sinkronisasi penuh pada tengah malam. Hal ini hampir pasti akan menyebabkan kuota per menit Anda terlampaui dan mengakibatkan pembatasan kapasitas dan backoff.
Untuk menghindari hal ini, pastikan traffic Anda tersebar sepanjang hari jika memungkinkan. Jika klien Anda perlu melakukan sinkronisasi harian, minta klien untuk menentukan waktu acak (berbeda untuk setiap klien). Jika Anda perlu melakukan operasi secara rutin, ubah intervalnya sebesar +/- 25%. Hal ini akan mendistribusikan traffic secara lebih merata dan memberikan pengalaman pengguna yang jauh lebih baik.
Menggunakan notifikasi push
Kasus penggunaan yang umum adalah ingin melakukan tindakan setiap kali ada perubahan di kalender pengguna. Anti-pola di sini adalah melakukan polling berulang kali pada setiap kalender yang diinginkan. Hal ini akan menghabiskan semua kuota Anda dengan sangat cepat—misalnya, jika aplikasi Anda memiliki 5.000 pengguna dan melakukan polling pada kalender setiap pengguna sekali menit, hal ini akan memerlukan kuota per menit minimal 5.000 bahkan sebelum pekerjaan apa pun dilakukan.
Aplikasi sisi server dapat mendaftar untuk notifikasi push, yang memungkinkan kami
memberi tahu Anda saat terjadi sesuatu yang menarik. Hal ini memerlukan lebih banyak pekerjaan untuk
menyiapkan, tetapi memungkinkan penggunaan kuota yang jauh lebih efisien, dan
memberikan pengalaman pengguna yang lebih baik. Pastikan Anda menentukan eventType
yang ingin Anda terima notifikasinya. Untuk informasi selengkapnya, lihat
Notifikasi push.
Pencatatan yang tepat dengan akun layanan
Jika aplikasi Anda melakukan permintaan menggunakan delegasi tingkat domain, secara default akun layanan akan ditagih berdasarkan kuota "per menit per project per pengguna", bukan pengguna yang Anda tirukan identitasnya. Artinya, akun layanan kemungkinan akan kehabisan kuota dan dibatasi kapasitasnya, meskipun mungkin beroperasi di beberapa kalender pengguna. Anda dapat menghindarinya
dengan menggunakan parameter URL quotaUser
(atau header HTTP
x-goog-quota-user
) untuk menunjukkan pengguna mana yang akan ditagih. Ini hanya digunakan untuk penghitungan kuota. Lihat
Membatasi permintaan per pengguna
dalam dokumentasi Cloud untuk mengetahui informasi selengkapnya.
Menguji penanganan batas kuota
Untuk memastikan bahwa aplikasi Anda dapat menangani batas kuota dengan baik dalam prakteknya (misalnya dengan melakukan percobaan ulang dengan backoff eksponensial) dan untuk meminimalkan potensi gangguan bagi pengguna, sebaiknya uji skenario ini di lingkungan yang sebenarnya.
Agar pengujian tersebut tidak mengganggu penggunaan aplikasi yang sebenarnya, sebaiknya daftarkan project khusus pengujian terpisah di Konsol Google API dan konfigurasikannya dengan cara yang mirip dengan project produksi Anda. Selanjutnya, Anda dapat menetapkan kuota rendah secara artifisial untuk project ini dan mengamati perilaku aplikasi Anda.
Harga
Semua penggunaan Google Calendar API tersedia tanpa biaya tambahan. Melebihi batas permintaan kuota tidak akan menimbulkan biaya tambahan dan akun Anda tidak akan ditagih.