Kullanım sınırları

Google Sheets API paylaşılan bir hizmet olduğundan, tüm kullanıcılar tarafından adil bir şekilde kullanıldığından emin olmak ve Google Workspace sisteminin genel durumunu korumak için kota ve sınırlamalar uygularız.

Kota sınırları

Sheets API'nin bir API isteği için sabit boyut sınırı olmasa da kullanıcılar E-Tablolar tarafından kontrol edilmeyen farklı işleme bileşenlerinden gelen sınırlamalarla karşılaşabilir. Google, istekleri hızlandırmak için 2 MB'lık bir maksimum yük önerir.

Sheets API'nin dakika başına kotaları vardır ve bunlar dakikada bir yenilenir. Örneğin, proje başına dakikada 300 okuma isteği sınırı vardır. Uygulamanız bir dakika içinde 350 istek gönderirse ek 50 istek kotayı aşar ve 429: Too many requests HTTP durum kodu yanıtı oluşturur. Böyle bir durumda üstel geri çekilme algoritması kullanmanız gerekir. 1 dakika sonra istekleri tekrar çalıştırabilirsiniz. Kullanıcılar kota sınırını aşmadıkları sürece aynı anda birden fazla istek gönderebilirler.

Tüm E-Tablolar istekleri atomik olarak uygulanır. Yani, geçerli bir istek yoksa güncelleme tamamen başarısız olur ve (bağımsız) değişikliklerin hiçbiri uygulanmaz.

Aşağıdaki tabloda istek sınırları ayrıntılı olarak verilmiştir. Dakika başına kotanın içinde kalması koşuluyla günlük olarak oluşturabileceğiniz istek sayısı için bir sınır yoktur.

Kotalar
Okuma istekleri
Proje başına dakikada 300
Proje başına kullanıcı başına dakikada 60
Yazma istekleri
Proje başına dakikada 300
Proje başına kullanıcı başına dakikada 60

Dosya sınırlarıyla ilgili ayrıntılar için Google Drive'da depolayabileceğiniz dosyalar başlıklı makaleyi inceleyin.

Zamana dayalı kota hatalarını giderme

Tüm zaman tabanlı hatalarda (X dakika başına en fazla N istek) kodunuzun istisnayı yakalamasını ve cihazlarınızın aşırı yük oluşturmamasını sağlamak için kesilmiş üstel geri çekilme kullanmasını öneririz.

Üstel geri çekilme, ağ uygulamaları için standart bir hata işleme stratejisidir. Üstel geri çekilme algoritması, istekler arasındaki bekleme sürelerini önemli ölçüde artırarak maksimum geri yükleme süresine kadar istekleri yeniden dener. İstekler hâlâ başarısız oluyorsa, istek başarılı olana kadar istekler arasındaki gecikmelerin zaman içinde artması önemlidir.

Örnek algoritma

Üslü bir geri yükleme algoritması, istekleri katlanarak yeniden dener ve yeniden denemeler arasındaki bekleme süresini maksimum geri yükleme süresine kadar artırır. Örneğin:

  1. Google Sheets API'ye istekte bulunun.
  2. İstek başarısız olursa 1 + random_number_milliseconds bekleyin ve isteği yeniden deneyin.
  3. İstek başarısız olursa 2 + random_number_milliseconds bekleyin ve isteği yeniden deneyin.
  4. İstek başarısız olursa 4 + random_number_milliseconds bekleyin ve isteği yeniden deneyin.
  5. Bu durumda maximum_backoff saate kadar kullanabilirsiniz.
  6. Beklemeye devam edip maksimum sayıda yeniden denemeye kadar tekrar deneyin. Ancak yeniden denemeler arasındaki bekleme süresini artırmayın.

Bu örnekte:

  • Bekleme süresi min(((2^n)+random_number_milliseconds), maximum_backoff) ve n her iterasyon (istek) için 1'er artar.
  • random_number_milliseconds,1.000 veya daha az rastgele bir milisaniye sayısıdır. Bu, birçok istemcinin bir duruma göre senkronize edildiği ve tümünü tek seferde yeniden denediği, senkronize dalgalarda istek gönderen durumlardan kaçınmanıza yardımcı olur. random_number_milliseconds değeri, her yeniden deneme isteğinden sonra yeniden hesaplanır.
  • maximum_backoff genellikle 32 veya 64 saniyedir. Uygun değer, kullanım alanına bağlıdır.

Müşteri, maximum_backoff kez ulaştığında tekrar denemeye devam edebilir. Bu noktadan sonra yeniden denemelerin geri alma süresini artırmaya devam etmesi gerekmez. Örneğin, bir müşteri 64 saniyelik maximum_backoff zaman kullanıyorsa bu değere ulaştıktan sonra 64 saniyede bir yeniden deneyebilir. Bir noktada, müşterilerin süresiz olarak yeniden denemelerinin engellenmesi gerekir.

Yeniden denemeler ve yeniden deneme sayısı arasındaki bekleme süresi, kullanım alanınıza ve ağ koşullarınıza bağlıdır.

Fiyatlandırma

Google Sheets API'nin her türlü kullanımı ücretsizdir. Kota isteği sınırlarının aşılması durumunda ek ücret alınmaz ve hesabınız faturalandırılmaz.

Kota artışı isteme

Projenizin kaynak kullanımına bağlı olarak kota artışı talep edebilirsiniz. Bir hizmet hesabının API çağrıları, tek bir hesap kullanıyor olarak kabul edilir. Artan bir kotaya başvurmak onay almak anlamına gelmez. Büyük kota artışlarının onaylanması daha uzun sürebilir.

Her projenin kotası aynı değildir. Google Cloud'u giderek daha fazla kullandıkça kotalarınızın artması gerekebilir. Kullanımın önemli ölçüde artacağını düşünüyorsanız Google Cloud Console'daki Kotalar sayfasından proaktif olarak kotaların ayarlanmasını isteyebilirsiniz.

Daha fazla bilgi edinmek için aşağıdaki kaynakları inceleyin: