Kullanım sınırları

Gmail API, API yöntemlerinin çağrılabileceği hızı kısıtlayan kullanım sınırlarına tabidir. Sınırlar, Gmail kaynak kullanımını temsil eden soyut bir ölçü birimi olan kota birimleri cinsinden tanımlanır. Aynı anda uygulanan iki kullanım sınırı vardır: proje başına hız sınırı ve kullanıcı başına hız sınırı.

Bu sınırlar aşağıdaki tabloda ayrıntılı olarak açıklanmıştır:

Kullanım sınırı türü Sınır Hata kodu
Proje başına sıklık sınırı Dakikada 1.200.000 kota birimi rateLimitExceeded
Kullanıcı başına hız sınırı Kullanıcı başına dakikada 15.000 kota birimi userRateLimitExceeded

Sınır hatalarını ele alma hakkında bilgi edinmek için Hataları çözme başlıklı makaleyi inceleyin.

Yöntem başına kota kullanımı

Bir istek tarafından kullanılan kota birimi sayısı, çağrılan yönteme göre değişir. Aşağıdaki tabloda, yöntem başına kota birimi kullanımı özetlenmiştir:

Yöntem Kota birimleri
drafts.create 10
drafts.delete 10
drafts.get 5
drafts.list 5
drafts.send 100
drafts.update 15
getProfile 1
history.list 2
labels.create 5
labels.delete 5
labels.get 1
labels.list 1
labels.update 5
messages.attachments.get 5
messages.batchDelete 50
messages.batchModify 50
messages.delete 10
messages.get 5
messages.import 25
messages.insert 25
messages.list 5
messages.modify 5
messages.send 100
messages.trash 5
messages.untrash 5
settings.delegates.create 100
settings.delegates.delete 5
settings.delegates.get 1
settings.delegates.list 1
settings.filters.create 5
settings.filters.delete 5
settings.filters.get 1
settings.filters.list 1
settings.forwardingAddresses.create 100
settings.forwardingAddresses.delete 5
settings.forwardingAddresses.get 1
settings.forwardingAddresses.list 1
settings.getAutoForwarding 1
settings.getImap 1
settings.getPop 1
settings.getVacation 1
settings.sendAs.create 100
settings.sendAs.delete 5
settings.sendAs.get 1
settings.sendAs.list 1
settings.sendAs.update 100
settings.sendAs.verify 100
settings.updateAutoForwarding 5
settings.updateImap 5
settings.updatePop 100
settings.updateVacation 5
stop 50
threads.delete 20
threads.get 10
threads.list 10
threads.modify 10
threads.trash 10
threads.untrash 10
watch 100

Gmail API'yi kullanırken e-posta iletisi başına 500 alıcı sınırı da vardır.

Zamana dayalı kota hatalarını düzeltme

Zamana dayalı tüm hatalar (X dakika başına en fazla N istek) için kodunuzun istisnayı yakalamasını ve cihazlarınızın aşırı yük oluşturmadığından emin olmak için kısaltılmış eksponansiyel geri yükleme kullanmasını öneririz.

Eksponansiyel geri yükleme, ağ uygulamaları için standart bir hata işleme stratejisidir. Eksponansiyel geri yükleme algoritması, istekler arasındaki bekleme sürelerini üstel olarak artırarak istekleri yeniden dener. Bu işlem, maksimum geri yükleme süresine kadar devam eder. İ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

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

  1. Gmail API'ye istek gönderin.
  2. İstek başarısız olursa 1 + random_number_milliseconds saniye bekleyip isteği yeniden deneyin.
  3. İstek başarısız olursa 2 + random_number_milliseconds saniye bekleyip isteği yeniden deneyin.
  4. İstek başarısız olursa 4 + random_number_milliseconds saniye bekleyin ve isteği yeniden deneyin.
  5. Bu işlem maximum_backoff kez tekrarlanabilir.
  6. Maksimum deneme sayısına ulaşana kadar beklemeye ve yeniden denemeye devam edin ancak yeniden denemeler arasındaki bekleme süresini artırmayın.

Bu örnekte:

  • Bekleme süresi min(((2^n)+random_number_milliseconds), maximum_backoff)'dır. Her yineleme (istek) için n değeri 1 artırılır.
  • random_number_milliseconds,1.000'den küçük veya 1.000'e eşit rastgele bir milisaniye sayısıdır. Bu, birçok istemcinin bir durum nedeniyle senkronize edildiği ve hepsinin aynı anda yeniden denediği, istekleri senkronize dalgalar halinde gönderdiği durumların önlenmesine 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.

İstemci, maximum_backoff kez denedikten sonra yeniden denemeye devam edebilir. Bu noktadan sonraki yeniden denemelerde geri çekilme süresinin artırılması gerekmez. Örneğin, bir istemci 64 saniyelik bir maximum_backoff kullanıyorsa bu değere ulaştıktan sonra her 64 saniyede bir yeniden deneyebilir. Bir noktada, istemcilerin süresiz olarak yeniden denemesi engellenmelidir.

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

Fiyatlandırma

Gmail API'nin her türlü kullanımı ücretsizdir. Kota isteği sınırlarının aşılması ek ücrete neden olmaz ve hesabınız faturalandırılmaz.

Kota artışı isteme

Projenizin kaynak kullanımına bağlı olarak kota ayarlaması isteğinde bulunmak isteyebilirsiniz. Bir hizmet hesabı tarafından yapılan API çağrıları, tek bir hesap kullanıyormuş gibi değerlendirilir. Ayarlanmış kota başvurusunda bulunmak onay alacağınıza dair bir garanti teşkil etmez. Kota değerini önemli ölçüde artıracak kota ayarlama isteklerinin onaylanması daha uzun sürebilir.

Her projenin kotası aynı değildir. Google Cloud'u zaman içinde daha fazla kullandıkça kota değerlerinizin artırılması gerekebilir. Kullanımın önemli oranda artacağını düşünüyorsanız Google Cloud Console'daki Kotalar sayfasından önlem amaçlı olarak kota ayarlamaları isteyebilirsiniz.

Daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın: