Batas penggunaan

Karena Google Sheets API adalah layanan bersama, kami menerapkan kuota dan batasan untuk memastikan penggunaan data secara adil oleh semua pengguna dan untuk melindungi performa sistem Google Workspace.

Batas kuota

Meskipun Sheets API tidak memiliki batas ukuran mutlak untuk permintaan API, pengguna mungkin mengalami batas dari berbagai komponen pemrosesan yang tidak dikontrol oleh Spreadsheet. Untuk mempercepat permintaan, Google merekomendasikan payload maksimum 2 MB.

Sheets API memiliki kuota per menit, dan diisi ulang setiap menit. Misalnya, ada batas permintaan baca sebesar 300 per menit per project. Jika aplikasi Anda mengirim 350 permintaan dalam satu menit, 50 permintaan tambahan tersebut melebihi kuota dan menghasilkan Respons kode status HTTP 429: Too many requests. Jika ini terjadi, Anda harus menggunakan algoritma backoff eksponensial. Setelah 1 menit, Anda dapat mengeksekusi permintaan lagi. Pengguna dapat mengirimkan beberapa permintaan sekaligus, selama masih berada dalam batas kuota.

Semua permintaan Spreadsheet diterapkan secara atomik. Artinya, jika ada permintaan yang tidak valid, seluruh update tidak akan berhasil dan tidak ada perubahan (yang mungkin bergantung) yang akan diterapkan.

Tabel berikut menjelaskan batas permintaan. Asalkan Anda tetap berada dalam kuota per menit, tidak ada membatasi jumlah permintaan yang dapat Anda buat per hari.

Kuota
Permintaan baca
Per menit per project 300
Per menit per pengguna per project 60
Permintaan tulis
Per menit per project 300
Per menit per pengguna per project 60

Untuk mengetahui detail tentang batas file, buka File yang dapat Anda simpan di Google Drive.

Mengatasi error kuota berbasis waktu

Untuk semua error berbasis waktu (maksimum N permintaan per X menit), sebaiknya kode Anda menangkap pengecualian dan menggunakan backoff eksponensial terpotong untuk memastikan tidak menimbulkan beban berlebihan.

Backoff eksponensial adalah strategi penanganan error standar untuk aplikasi jaringan. Channel algoritma backoff eksponensial mencoba ulang permintaan menggunakan waktu tunggu yang meningkat secara eksponensial antarpermintaan, hingga waktu backoff maksimum. Jika permintaan tetap tidak berhasil, bahwa penundaan di antara permintaan akan meningkat seiring waktu sampai permintaan berhasil.

Contoh algoritma

Algoritma backoff eksponensial mencoba kembali permintaan secara eksponensial, sehingga meningkatkan waktu tunggu di antara percobaan ulang hingga waktu backoff maksimum. Contoh:

  1. Buat permintaan ke Google Sheets API.
  2. Jika permintaan gagal, tunggu 1 + random_number_milliseconds dan coba lagi terhadap permintaan.
  3. Jika permintaan gagal, tunggu 2 + random_number_milliseconds dan coba lagi terhadap permintaan.
  4. Jika permintaan gagal, tunggu 4 + random_number_milliseconds dan coba lagi terhadap permintaan.
  5. Dan seterusnya, hingga maximum_backoff kali.
  6. Terus tunggu dan coba lagi hingga jumlah maksimum percobaan ulang, tetapi jangan tingkatkan waktu tunggu yang sama di antara percobaan ulang.

dalam hal ini:

  • Waktu tunggunya adalah min(((2^n)+random_number_milliseconds), maximum_backoff), dengan n bertambah 1 untuk setiap iterasi (permintaan).
  • random_number_milliseconds adalah angka acak milidetik yang kurang dari atau sama dengan 1.000. Hal ini membantu menghindari kasus di mana banyak klien disinkronkan oleh beberapa situasi dan semua percobaan ulang sekaligus, mengirimkan permintaan secara ombak. Nilai random_number_milliseconds dihitung ulang setelah masing-masing permintaan percobaan ulang.
  • maximum_backoff biasanya 32 atau 64 detik. Nilai yang sesuai bergantung pada kasus penggunaannya.

Klien dapat terus mencoba ulang setelah mencapai waktu maximum_backoff. Percobaan ulang setelah tahap ini tidak perlu terus meningkatkan waktu backoff. Sebagai Misalnya, jika klien menggunakan waktu maximum_backoff selama 64 detik, maka setelah mencapai nilai ini, klien dapat mencoba ulang setiap 64 detik. Pada titik tertentu, klien harus dicegah agar tidak melakukan percobaan ulang tanpa batas waktu.

Waktu tunggu antara percobaan ulang dan jumlah percobaan ulang bergantung pada kasus penggunaan Anda dan kondisi jaringan.

Harga

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

Meminta penambahan kuota

Bergantung pada penggunaan resource project, Anda mungkin ingin meminta kuota meningkat. Panggilan API oleh akun layanan dianggap menggunakan akun tunggal. Mengajukan permohonan agar kuota ditambah tidak menjamin persetujuan. Besar peningkatan kuota mungkin memerlukan waktu lebih lama untuk disetujui.

Tidak semua project memiliki kuota yang sama. Seiring dengan meningkatnya penggunaan Google Cloud kuota Anda mungkin perlu ditingkatkan. Jika Anda mengharapkan peristiwa penting meningkat, Anda dapat secara proaktif meminta penyesuaian kuota dari halaman Quotas di Konsol Google Cloud.

Untuk mempelajari lebih lanjut, lihat referensi berikut: