Google Calendar API memiliki kuota untuk memastikan bahwa 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 kecepatan aksesnya kapan saja. Misalnya, jika Anda mencoba menulis ke satu kalender secara berurutan dengan cepat.
Jenis kuota penggunaan Calendar API
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. Batas ini bertujuan untuk membantu Anda memastikan distribusi penggunaan yang adil di antara pengguna Anda.
Kuota dihitung per menit menggunakan jendela geser, sehingga lonjakan traffic yang cepat dan melebihi kuota per menit selama satu menit akan mengakibatkan pembatasan kecepatan selama jendela berikutnya untuk memastikan bahwa, rata-rata, penggunaan Anda tetap berada dalam kuota.
Jika salah satu kuota terlampaui, Anda akan dibatasi lajunya dan menerima
kode status 403 usageLimits
atau
kode status 429 usageLimits
untuk kueri Anda. Jika hal ini terjadi, berikut yang dapat Anda lakukan:
- Pastikan Anda mengikuti semua praktik terbaik: gunakan mundur eksponensial, acak pola traffic, gunakan notifikasi push.
- Jika project Anda berkembang dan Anda 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 kepada pengguna atau bagi beban tersebut di antara beberapa akun layanan.
- Meskipun Anda dapat meminta peningkatan kuota per pengguna, secara umum tidak disarankan 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 403 "usageLimits" atau respons 429 (lihat dokumentasi error lengkap). Ini bukan error fatal dan kami berharap Anda mencoba lagi permintaan setelah interval 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.
Biasanya, Anda harus menggunakan backoff eksponensial yang dipangkas; dokumentasi Cloud Storage memiliki penjelasan yang baik tentang cara kerja ini dan algoritma yang disukai. Jika Anda menggunakan library klien Google, hal ini biasanya akan ditangani untuk Anda; lihat dokumentasi library Anda. Biasanya, Anda harus menggunakan implementasi library daripada menulis sendiri.
Mengacak pola traffic
Klien kalender rentan terhadap pola traffic yang tidak teratur 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 kecepatan dan penghentian sementara.
Untuk menghindari hal ini, pastikan traffic Anda tersebar sepanjang hari jika memungkinkan. Jika klien Anda perlu melakukan sinkronisasi harian, minta klien menentukan waktu acak (berbeda untuk setiap klien). Jika Anda perlu melakukan operasi secara rutin, variasikan interval +/- 25%. Hal ini akan mendistribusikan traffic secara lebih merata dan memberikan pengalaman pengguna yang jauh lebih baik.
Menggunakan notifikasi push
Kasus penggunaan 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 diminati. Hal ini akan menghabiskan semua kuota Anda dengan sangat cepat—misalnya, jika aplikasi Anda memiliki 5.000 pengguna dan melakukan polling kalender setiap pengguna sekali per menit, maka hal ini akan memerlukan kuota per menit minimal 5.000 bahkan sebelum ada pekerjaan yang dilakukan.
Aplikasi sisi server dapat mendaftar untuk menerima notifikasi push, yang memungkinkan kami memberi tahu Anda jika ada sesuatu yang menarik. Metode ini memerlukan lebih banyak upaya untuk penyiapan, tetapi memungkinkan penggunaan kuota yang jauh lebih efisien, dan memberikan pengalaman pengguna yang lebih baik. Pastikan Anda menentukan eventType
yang ingin Anda dapatkan notifikasinya. Untuk mengetahui informasi selengkapnya, lihat
Notifikasi push.
Akuntansi yang tepat dengan akun layanan
Jika aplikasi Anda membuat permintaan menggunakan
delegasi tingkat domain,
secara default akun layanan dikenai biaya terkait kuota "per menit per
project per pengguna", bukan pengguna yang Anda tiru. Artinya, akun layanan kemungkinan akan kehabisan kuota dan dibatasi lajunya, meskipun akun tersebut mungkin beroperasi di beberapa kalender pengguna. Anda dapat menghindari hal ini dengan menggunakan parameter URL quotaUser
(atau header HTTP x-goog-quota-user
) untuk menunjukkan pengguna mana yang akan ditagih. Ini hanya digunakan untuk perhitungan kuota. Lihat
Membatasi permintaan per pengguna
dalam dokumentasi Cloud untuk mengetahui informasi selengkapnya.
Menguji penanganan batas kuota
Untuk memastikan aplikasi Anda dapat menangani batas kuota yang tercapai dengan baik dalam praktiknya (misalnya dengan melakukan percobaan ulang dengan backoff eksponensial) dan untuk meminimalkan potensi gangguan bagi pengguna Anda, sebaiknya uji skenario ini di lingkungan yang sebenarnya.
Agar pengujian tersebut tidak mengganggu penggunaan aplikasi Anda yang sebenarnya, sebaiknya daftarkan project khusus pengujian terpisah di Konsol Google API dan konfigurasikan dengan cara yang serupa dengan project produksi Anda. Kemudian, Anda dapat menetapkan kuota rendah secara buatan untuk project ini dan mengamati perilaku aplikasi Anda.
Harga
Semua penggunaan Google Calendar API tersedia tanpa biaya tambahan. Jika Anda melampaui batas permintaan kuota, Anda tidak akan dikenai biaya tambahan dan akun Anda tidak akan ditagih.