Kullanım sınırları

Google Chat API paylaşılan bir hizmet olduğundan, tüm kullanıcılar tarafından adil bir şekilde kullanılmasını sağlamak ve Google Workspace'in genel performansını korumak için kotalar ve sınırlamalar uygularız.

Kotayı aşarsanız 429: Too many requests HTTP durum kodu yanıtı alırsınız. Chat arka ucundaki ek hız sınırı kontrolleri de aynı hata yanıtını oluşturabilir. Bu hata oluşursa üsselik geri çekilme algoritması kullanıp daha sonra tekrar denemeniz gerekir. Aşağıdaki tablolarda listelenen dakika başına kotalar dahilinde kaldığınızda günlük olarak gönderebileceğiniz istek sayısı sınırsızdır.

Chat API yöntemleri için iki kota türü geçerlidir: alan başına ve proje başına kotalar.

Alan başına kotalar

Alan başına kotalar, belirli bir alandaki sorgu hızını sınırlar ve her kota için listelenen Chat API yöntemlerini çağıran, söz konusu alanda çalışan tüm Chat uygulamaları arasında paylaşılır.

Aşağıdaki tabloda alan başına sorgu sınırlamaları ayrıntılı olarak açıklanmıştır:

Alan başına kota

Chat API yöntemleri

Sınır (60 saniye başına, alandaki tüm Chat uygulamaları arasında
paylaşılır)

Dakika başına okuma sayısı

media.download

spaces.get

spaces.members.get

spaces.members.list

spaces.messages.get

spaces.messages.list

spaces.messages.attachments.get

spaces.messages.reactions.list

900

Dakika başına yazma sayısı

media.upload

spaces.delete

spaces.patch

spaces.messages.create (gelen webhook'lar için de geçerlidir)

spaces.messages.delete

spaces.messages.patch

spaces.messages.reactions.create

spaces.messages.reactions.delete

60

Proje başına kotalar

Proje başına kotalar, bir Google Cloud projesinin sorgu hızını sınırlandırır ve bu nedenle her kota için belirtilen Chat API yöntemlerini çağıran tek bir Chat uygulaması için geçerlidir.

Aşağıdaki tabloda proje başına sorgu sınırları hakkında ayrıntılı bilgi verilmektedir. Bu sınırları Kotalar sayfasında da bulabilirsiniz.

Proje Başına Kota

Chat API yöntemleri

Sınır (60 saniye başına)

Dakika başına ileti yazma sayısı

spaces.messages.create

spaces.messages.patch

spaces.messages.delete

3000

Dakika başına mesaj okuma sayısı

spaces.messages.get

spaces.messages.list

3000

Dakika başına üyelik yazma sayısı

spaces.members.create

spaces.members.delete

300

Dakika başına üyelik okuma sayısı

spaces.members.get

spaces.members.list

3000

Dakika başına alan yazma sayısı

spaces.setup

spaces.create

spaces.patch

spaces.delete

60

Dakika başına alan okuma sayısı

spaces.get

spaces.list

spaces.findDirectMessage

3000

Dakika başına ek yazma

media.upload

600

Dakikada ek okuma

spaces.messages.attachments.get

media.download

3000

Dakika başına tepki yazma

spaces.messages.reactions.create

spaces.messages.reactions.delete

600

Dakika başına tepki okuma sayısı

spaces.messages.reactions.list

3000

Ek kullanım sınırları

GROUP_CHAT veya SPACE türündeki alanlar oluşturmak için ek kota sınırları vardır (spaces.create veya spaces.setup yöntemi kullanılarak). Bu türden alanlar için dakika başına 35'ten az ve saat başına 800'den az alan oluşturun. DIRECT_MESSAGE türündeki alanlar bu ek kota sınırlamalarına tabi değildir.

Aynı alanı hedefleyen yüksek API trafiği, Kotalar sayfasında görünmeyen ek dahili sınırlamaları tetikleyebilir.

Zamana dayalı kota hatalarını çözme

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şturmamasını sağlamak amacıyla kesilmiş üssel geri çekme kullanmasını öneririz.

Üslü geri alma, ağ uygulamaları için standart bir hata işleme stratejisidir. Eksponansiyel geri yükleme algoritması, maksimum geri yükleme süresine kadar istekler arasında katlanarak artan bekleme süreleri kullanarak istekleri yeniden dener. İstekler yine de başarısız olursa istekler arasındaki gecikmenin, istek başarılı olana kadar zaman içinde artması önemlidir.

Örnek algoritma

Eksponansiyel 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 Chat API'ye istek gönderin.
  2. İstek başarısız olursa 1 + random_number_milliseconds saniye bekleyip isteği tekrar deneyin.
  3. İstek başarısız olursa 2 + random_number_milliseconds saniye bekleyip isteği tekrar deneyin.
  4. İstek başarısız olursa 4 + random_number_milliseconds saniye bekleyip isteği tekrar deneyin.
  5. Bu işlem maximum_backoff kez tekrarlanır.
  6. Beklemeye devam edip maksimum yeniden deneme sayısına kadar tekrar deneyin. Ancak denemeler arasındaki bekleme süresini uzatmayın.

Bu örnekte:

  • Bekleme süresi min(((2^n)+random_number_milliseconds), maximum_backoff)'tür. n, her iterasyon (istek) için 1 artar.
  • 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 isteklerin senkronize dalgalar halinde gönderilerek hepsinin aynı anda yeniden denediğ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 zamanına ulaştıktan sonra yeniden denemeye devam edebilir. Bu noktadan sonra yapılan yeniden denemelerde bekleme süresinin artırılması gerekmez. Örneğin, bir istemci 64 saniyelik bir maximum_backoff süresi kullanıyorsa bu değere ulaştıktan sonra 64 saniyede bir yeniden deneyebilir. Bir noktada, istemcilerin sürekli olarak yeniden denemesi engellenecektir.

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

Proje başına kota artışı isteyin

Projenizin kaynak kullanımına bağlı olarak kota artışı talep edebilirsiniz. Bir hizmet hesabı tarafından yapılan API çağrılarının tek bir hesap kullandığı kabul edilir. Kota artışı başvurusunda bulunmak onay alacağınıza dair bir garanti teşkil etmez. Büyük kota artışlarının onaylanması daha uzun sürebilir.

Her projenin kotası aynı değildir. Google Cloud'u zaman içinde gittikçe daha fazla kullandığınız için kotalarınızın artması gerekebilir. Kullanımın önemli oranda artacağını düşünüyorsanız proaktif olarak Google Cloud Console'daki Kotalar sayfasından kota ayarlamalarını isteyebilirsiniz.

Daha fazla bilgi edinmek için aşağıdaki kaynaklara göz atın: