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ı |
|
3.000 |
Dakikada okunan ileti sayısı |
|
3.000 |
Dakika başına üyelik yazma sayısı |
|
300 |
Dakika başına üyelik okuma sayısı |
|
3.000 |
Dakika başına alan yazma sayısı |
|
60 |
Dakikada alan okuma sayısı |
|
3.000 |
Dakikada ek yazma |
|
600 |
Dakikada ek okuma |
|
3.000 |
Dakikada tepki yazma sayısı |
|
600 |
Dakikada tepki okuma sayısı |
|
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:
- Google Chat API'ye istekte bulunun.
- İstek başarısız olursa 1 +
random_number_milliseconds
bekleyin ve isteği yeniden deneyin. - İstek başarısız olursa 2 +
random_number_milliseconds
bekleyin ve isteği yeniden deneyin. - İstek başarısız olursa 4 +
random_number_milliseconds
bekleyin ve isteği yeniden deneyin. - En fazla
maximum_backoff
kez olmak üzere benzer şekilde devam edebilirsiniz. - 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 ven
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:
- 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