Mengelola kuota

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 informasi selengkapnya.
  • Batas penggunaan Kalender umum: Hindari batas penggunaan Kalender.
  • Batas operasional: kapasitas Anda mungkin dibatasi kapan saja. Misalnya, jika Anda mencoba menulis ke satu kalender secara berurutan.

Jenis kuota penggunaan Calendar 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 membantu Anda memastikan distribusi penggunaan yang adil di antara pengguna Anda.

Kuota dihitung per menit menggunakan jendela geser, sehingga burst traffic yang cepat yang melebihi kuota per menit selama satu menit akan menyebabkan pembatasan kapasitas selama periode berikutnya untuk memastikan bahwa rata-rata penggunaan Anda tetap dalam kuota.

Jika salah satu kuota terlampaui, kapasitas akan dibatasi dan akan menerima kode status 403 usageLimits atau kode status 429 usageLimits untuk kueri Anda. Jika hal ini terjadi, berikut yang dapat Anda lakukan:

  1. Pastikan Anda mengikuti semua praktik terbaik: gunakan backoff eksponensial, acak pola traffic, gunakan notifikasi push.
  2. Jika project Anda berkembang dan memiliki lebih banyak pengguna, Anda dapat meminta peningkatan kuota per project.
  3. Jika batas kuota per pengguna tercapai, Anda dapat melakukan tindakan berikut:
    • Jika Anda menggunakan akun layanan, alokasikan beban kepada pengguna atau bagi menjadi beberapa akun layanan.
    • Meskipun Anda dapat meminta penambahan 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:

  1. Jika Anda belum memiliki akun penagihan untuk project, buat akun penagihan.
  2. Buka halaman API yang Diaktifkan dari library API di Konsol API, lalu pilih API dari daftar.
  3. Untuk melihat dan mengubah setelan terkait kuota, pilih Kuota. Untuk melihat statistik penggunaan, pilih Penggunaan.

Menggunakan backoff eksponensial

Jika kami ingin Anda memperlambat tingkat permintaan, kami akan menampilkan respons 403 "usageLimits" atau respons 429 (lihat dokumentasi error lengkap). Ini bukan error fatal dan kami memperkirakan Anda akan mencoba lagi permintaan tersebut setelah interval singkat. Jika permintaan masih terlalu cepat diterima, kami akan bertanya lagi, dan seterusnya. Agar berfungsi dengan benar, penundaan di antara permintaan harus meningkat dari waktu ke waktu.

Secara umum, Anda harus menggunakan backoff eksponensial terpotong; dokumentasi Cloud Storage memiliki penjelasan yang baik tentang cara kerjanya dan algoritma yang dipilih. Jika Anda menggunakan library klien Google, hal ini biasanya akan ditangani untuk Anda; baca dokumentasi library Anda. Biasanya, Anda harus menggunakan implementasi library, bukan menulisnya sendiri.

Acak pola lalu lintas

Klien Kalender rentan terhadap pola traffic melonjak yang disebabkan oleh beberapa klien yang menjalankan operasi secara bersamaan. Misalnya, praktik buruk yang umum untuk klien Kalender adalah melakukan sinkronisasi penuh pada tengah malam. Hal ini hampir dapat dipastikan akan mengakibatkan 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 menjalankan operasi secara rutin, variasikan intervalnya +/- 25%. Tindakan 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 sesuatu berubah di kalender pengguna. Antipola di sini adalah melakukan polling berulang kali setiap kalender yang diinginkan. Tindakan ini akan menghabiskan semua kuota Anda dengan sangat cepat. Misalnya, jika aplikasi Anda memiliki 5.000 pengguna dan melakukan polling setiap kalender pengguna satu menit sekali, proses ini akan memerlukan kuota per menit setidaknya 5.000 bahkan sebelum pekerjaan dilakukan.

Aplikasi sisi server dapat mendaftar untuk notifikasi push, yang memungkinkan kami memberi tahu Anda jika ada sesuatu yang menarik. Penyiapan ini memerlukan lebih banyak upaya, 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.

Akuntansi yang tepat dengan akun layanan

Jika aplikasi Anda menjalankan permintaan menggunakan delegasi tingkat domain, secara default akun layanan akan dikenai biaya terkait kuota "per menit per project per pengguna", dan bukan pengguna yang Anda tiru. Artinya, akun layanan kemungkinan akan kehabisan kuota dan kapasitasnya akan dibatasi, meskipun akun layanan mungkin beroperasi di kalender beberapa pengguna. Anda dapat menghindari hal ini dengan menggunakan parameter URL quotaUser (atau header HTTP x-goog-quota-user) untuk menunjukkan pengguna yang akan ditagih. Ini hanya digunakan untuk penghitungan kuota. Lihat Membatasi permintaan per pengguna di dokumentasi Cloud untuk mengetahui informasi selengkapnya.

Menguji penanganan batas kuota

Untuk memastikan aplikasi Anda dapat menangani tercapainya batas kuota dengan baik dalam praktiknya (misalnya, dengan melakukan percobaan ulang dengan backoff eksponensial) dan untuk meminimalkan potensi gangguan bagi pengguna, sebaiknya uji skenario ini di lingkungan nyata.

Agar pengujian tersebut tidak mengganggu penggunaan aplikasi Anda yang sebenarnya, sebaiknya daftarkan project khusus pengujian yang terpisah di Konsol API Google dan konfigurasikan dengan cara yang mirip dengan project produksi Anda. Kemudian, Anda dapat menetapkan kuota artifisial yang rendah untuk project ini dan mengamati perilaku aplikasi Anda.

Harga

Semua penggunaan Google Calendar API tersedia tanpa biaya tambahan. Melebihi batas permintaan kuota tidak akan dikenai biaya tambahan dan akun Anda tidak akan ditagih.