Kullanım sınırları

Google Chat API ortak bir hizmet olduğundan, API'nin tüm kullanıcılar tarafından adil bir şekilde kullanıldığından emin olmak ve Google Workspace'in genel performansını korumak için kotalar ve sınırlamalar uygularız.

Bir 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 üstel geri yükleme algoritması kullanmanız ve daha sonra tekrar denemeniz gerekir. Aşağıdaki tabloda listelenen dakika başına kotaları aşmadığınız sürece günlük oluşturabileceğiniz istek sayısında bir sınırlama yoktur.

Çeşitli Chat API yöntemleri için geçerli olan toplam 10 kota kategorisi vardır. Her kategorinin kendi hız sınırı vardır.

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

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

3.000

Dakikada okunan ileti sayısı

spaces.messages.get

spaces.messages.list

3.000

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

3.000

Dakika başına alan yazma sayısı

spaces.setup

spaces.create

spaces.patch

spaces.delete

60

Dakikada alan okuma sayısı

spaces.get

spaces.list

spaces.findDirectMessage

3.000

Dakikada ek yazma

media.upload

600

Dakikada ek okuma

spaces.messages.attachments.get

media.download

3.000

Dakikada tepki yazma sayısı

spaces.messages.reactions.create

spaces.messages.reactions.delete

600

Dakikada tepki okuma sayısı

spaces.messages.reactions.list

3.000

Ek kullanım sınırları

spaces.create veya spaces.setup yöntemi kullanılarak GROUP_CHAT veya SPACE türünde alanlar oluşturmak için ek kota sınırları söz konusu olabilir. Bu türlerde dakikada 10'dan az ve saatte 60'tan az alan oluşturun. DIRECT_MESSAGE türündeki alanlar, bu ek kota sınırlarına tabi değildir.

Aynı alanı hedefleyen herhangi bir API için saniyedeki büyük sorgular (QPS), Kotalar sayfasında görünmeyen ek dahili sınırları tetikleyebilir.

Zamana dayalı kota hatalarını çözme

Zamana dayalı tüm hatalar için (X dakikada en fazla N istek) kodunuzun istisnayı yakalamasını ve cihazlarınızın aşırı yük oluşturmaması için kısaltılmış bir üstel geri yükleme kullanmanızı öneririz.

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

Örnek algoritma

Üstel geri yükleme algoritması, istekleri katlanarak yeniden dener. Böylece yeniden denemeler arasındaki bekleme süresi, maksimum geri yükleme süresine kadar uzatılır. Örneğin:

  1. Google Chat 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. En fazla maximum_backoff kez olmak üzere benzer şekilde devam edebilirsiniz.
  6. Beklemeye devam edin ve maksimum yeniden deneme sayısına kadar tekrar deneyin. Ancak yeniden denemeler arasındaki bekleme süresini uzatmayın.

Bu örnekte:

  • Bekleme süresi min(((2^n)+random_number_milliseconds), maximum_backoff) şeklindedir ve n her iterasyon (istek) için 1 artar.
  • random_number_milliseconds,1.000'den küçük veya 1.000'e eşit olan rastgele bir milisaniye sayısıdır. Bu, bazı durumlarda çok sayıda istemcinin senkronize edildiği ve tümünün aynı anda yeniden deneme yaptığı durumların önlenmesine yardımcı olur. Böylece, istekleri senkronize dalgalar halinde gönderirsiniz. 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 süresi dolduktan sonra tekrar denemeye devam edebilir. Bu noktadan sonra yapılan yeniden denemelerin, geri yükleme süresini artırmaya devam etmesi gerekmez. Örneğin, bir istemci 64 saniyelik maximum_backoff süresi kullanırsa bu değere ulaştıktan sonra 64 saniyede bir yeniden deneyebilir. Bir noktada, istemcilerin yeniden deneme işlemi süresiz olarak engellenmelidir.

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

Kota artışı isteme

Projenizin kaynak kullanımına bağlı olarak kota artışı talep edebilirsiniz. Bir hizmet hesabından yapılan API çağrıları, tek bir hesap kullanıyor olarak kabul edilir. Kota artışı için başvuruda bulunmak onay alacağınız 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 zamanla daha fazla kullandığınız için kotalarınızın artması gerekebilir. Kullanımın önemli oranda artacağını düşünüyorsanız önlem amaçlı olarak Google Cloud Console'daki Kotalar sayfasından kotaların ayarlanmasını isteyebilirsiniz.

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