Calendar API paylaşılan bir hizmet olduğundan, tüm kullanıcılar tarafından adil bir şekilde kullanıldığından emin olmak için kotalar uygularız. Hızlı bir şekilde arka arkaya çok sayıda yazma işlemi gerçekleştirirseniz hız sınırlaması olabilir. Daha fazla bilgi için genel Takvim kullanım sınırları sayfasına göz atın. Ayrıca, Calendar API için iki ilgili kota vardır:
- Proje başına dakika başına: Projenizin tamamı tarafından yapılan istek sayısıdır. Projenizde çok sayıda kullanıcı varsa bu sayı artabilir.
- Proje başına, kullanıcı başına dakika başına: Projeniz tarafından belirli bir kullanıcı (isteği gerçekleştiren kullanıcı veya hizmet hesabı ve erişilen takvimin sahibi olan kullanıcı olması gerekmez) tarafından yapılan isteklerin sayısıdır. Bu değer genellikle artırılamaz. Bu nedenle, API'yi verimli bir şekilde kullandığınızdan emin olmanız önemlidir.
Kotalardan herhangi biri aşılırsa hızınız sınırlandırılır ve sorgularınıza 403 "usageLimits" yanıtı veya 429 yanıtı alırsınız. Bu durumda üstel geri yükleme yöntemini kullanmanız ve daha sonra tekrar denemeniz gerekir. Ayrıca, operasyonel nedenlerle her zaman sınırlı bir ücretle tabi tutulabilirsiniz, ancak bu durum genellikle çok nadirdir. Projeniz bu kotalar dahilinde kaldığı sürece günlük olarak gönderebileceğiniz istek sayısında bir sınırlama yoktur.
Kotalar, kayan bir pencere kullanılarak dakika başına hesaplanır. Bu nedenle, bir dakika boyunca dakika başına kotanızı aşan hızlı bir trafik artışı, bir sonraki pencerede hızın sınırlanmasına neden olarak kullanımınızın ortalama sınırlar dahilinde kalmasını sağlar.
Projenizin kullanım sınırlarını görüntülemek, değiştirmek veya kotanızda artış talep etmek için şunları yapın:
- Projeniz için faturalandırma hesabınız yoksa hesap oluşturun.
- API Konsolu'nda API kitaplığının Etkin API'ler sayfasını ziyaret edin ve listeden bir API seçin.
- Kota ile ilgili ayarları görüntülemek ve değiştirmek için Kotalar'ı seçin. Kullanım istatistiklerini görüntülemek için Kullanım'ı seçin.
Eksponansiyel geri yükleme kullan
İstek hızınızı yavaşlatmanızı istediğimizde 403 "usageLimits" yanıtı veya bir 429 yanıtı (hata belgelerinin tamamına bakın) döndürürüz. Bu önemli bir hata değildir ve kısa bir süre sonra isteği yeniden denemenizi bekliyoruz. İstekler yine de çok hızlı geliyorsa tekrar soracağız ve bu şekilde devam edeceğiz. Bunun doğru şekilde çalışması için istekler arasındaki gecikmelerin zaman içinde artması önemlidir.
Genellikle kısaltılmış eksponansiyel geri yükleme kullanmanız önerilir. Cloud Storage belgelerinde bu sürecin işleyiş şekli ve tercih edilen algoritma hakkında ayrıntılı açıklamalar mevcuttur. Google istemci kitaplığı kullanıyorsanız bu işlem normalde sizin için gerçekleştirilir. Kitaplığınızdaki dokümanlara bakın. Normalde, kendi dosyanızı yazmak yerine kitaplık uygulamasını kullanmanız gerekir.
Trafik kalıplarını rastgele seçin
Takvim istemcileri, aynı anda işlem yapan birden çok istemciden kaynaklanan ani trafik kalıplarına açıktır. Örneğin, yaygın görülen bir karşıt kalıp, bir Takvim istemcisinin gece yarısı tam senkronizasyon gerçekleştirmesidir. Bu işlemin dakika başına kotanızı aşması neredeyse garanti edilir, bu da hız sınırlamasına ve geri yüklemelere neden olur.
Bunu önlemek için, trafiğinizin gün içine mümkün olduğunca yayıldığından emin olun. Müşterinizin günlük senkronizasyon yapması gerekiyorsa istemciden rastgele bir zaman (her istemci için farklı) belirlemesini isteyin. Bir işlemi düzenli olarak gerçekleştirmeniz gerekiyorsa aralığı +/- %25 olarak değiştirin. Bu şekilde trafik daha eşit şekilde dağıtılır ve çok daha iyi bir kullanıcı deneyimi sağlanır.
Push bildirimlerini kullanma
Yaygın bir kullanım alanı, kullanıcının takviminde bir değişiklik olduğunda bir işlem gerçekleştirmektir. Buradaki karşıt kalıp, ilgilendiğiniz her takvimi tekrar tekrar yoklamaktır. Bu işlem tüm kotanızı hızlı bir şekilde tüketir. Örneğin, uygulamanızda 5.000 kullanıcı varsa ve her kullanıcının takvimini dakikada bir kez sorguluyorsa, herhangi bir iş yapılmadan önce dakika başına en az 5.000 kota gerekir.
Sunucu tarafı uygulamalar, ilginizi çekecek bir şey olduğunda sizi bilgilendirmemizi sağlayan push bildirimlerine kaydolabilir. Bu API'lerin ayarlanması için daha fazla çalışma yapılması gerekir. Bununla birlikte, kotanızın önemli ölçüde daha verimli şekilde kullanılmasını sağlayıp daha iyi bir kullanıcı deneyimi sunulur. Daha fazla bilgi için Push bildirimleri başlıklı makaleyi inceleyin.
Hizmet hesaplarıyla doğru hesaplama
Uygulamanız istekleri alan genelinde yetki kullanarak gerçekleştiriyorsa varsayılan olarak hizmet hesabı, kimliğine büründüğünüz kullanıcı başına değil, "kullanıcı başına proje başına dakika başına" kotalarına göre ücretlendirilir. Bu, birden fazla kullanıcının takviminde çalışıyor olsa bile hizmet hesabının büyük olasılıkla kotası biteceği ve hız sınırlı olacağı anlamına gelir. Hangi kullanıcıdan ödeme alınacağını belirtmek için quotaUser
URL parametresini (veya x-goog-quota-user
HTTP üst bilgisini) kullanarak bunu önleyebilirsiniz. Bu özellik yalnızca kota hesaplamaları için kullanılır. Daha fazla bilgi için Cloud belgelerindeki Kullanıcı başına istekleri sınırlama bölümüne bakın.
Kota sınırı işlemesini test etme
Uygulamanızın, kullanım sırasında kota sınırlarına ulaşma sürecini sorunsuzca ele alabilmesini sağlamak (ör. üstel geri yükleme ile yeniden denemeler yaparak) ve kullanıcılarınıza yaşanabilecek olası rahatsızlıkları en aza indirmek için bu senaryoyu gerçek bir ortamda test etmenizi önemle tavsiye ederiz.
Bu tür bir testin gerçek uygulama kullanımınızı etkilememesi için Google API Konsolu'na yalnızca test amaçlı ayrı bir proje kaydetmenizi ve bunu üretim projenize benzer bir şekilde yapılandırmanızı öneririz. Daha sonra bu proje için yapay olarak düşük kotalar ayarlayabilir ve uygulamanızın davranışını gözlemleyebilirsiniz.
Fiyatlandırma
Google Calendar API'nin her türlü kullanımı ek ücret olmadan sunulur. Kota isteği sınırları aşıldığında ek ücret alınmaz ve hesabınız faturalandırılmaz.