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 |
---|---|---|
Dakika başına okuma sayısı |
|
900 |
Dakika başına yazma sayısı |
|
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ı |
|
3000 |
Dakika başına mesaj okuma sayısı |
|
3000 |
Dakika başına üyelik yazma sayısı |
|
300 |
Dakika başına üyelik okuma sayısı |
|
3000 |
Dakika başına alan yazma sayısı |
|
60 |
Dakika başına alan okuma sayısı |
|
3000 |
Dakika başına ek yazma |
|
600 |
Dakikada ek okuma |
|
3000 |
Dakika başına tepki yazma |
|
600 |
Dakika başına tepki okuma sayısı |
|
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:
- Google Chat API'ye istek gönderin.
- İstek başarısız olursa 1 +
random_number_milliseconds
saniye bekleyip isteği tekrar deneyin. - İstek başarısız olursa 2 +
random_number_milliseconds
saniye bekleyip isteği tekrar deneyin. - İstek başarısız olursa 4 +
random_number_milliseconds
saniye bekleyip isteği tekrar deneyin. - Bu işlem
maximum_backoff
kez tekrarlanır. - 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:
- Kota artışı istekleri hakkında
- Mevcut kota kullanımınızı ve sınırlarınızı görüntüleme
- Kota sınırını yükseltme isteğinde bulunma