कोटा मैनेज करना

Google Calendar API में यह तय करने के लिए कोटा होते हैं कि सभी उपयोगकर्ता उसका सही तरीके से इस्तेमाल करते हैं. Calendar API का इस्तेमाल करते समय, इन तीन अहम सीमाओं का ध्यान रखना ज़रूरी है:

  • एपीआई इस्तेमाल करने की सीमा, हर प्रोजेक्ट और हर उपयोगकर्ता के लिए लागू होती है. ज़्यादा जानकारी के लिए, अगला सेक्शन देखें.
  • Calendar के इस्तेमाल की सामान्य सीमाएं: Calendar पर इस्तेमाल करने की सीमाओं से बचें.
  • ऑपरेशन की सीमाएं: इससे किसी भी समय दर को सीमित किया जा सकता है. उदाहरण के लिए, अगर आपको एक कैलेंडर में एक के बाद एक बार-बार कुछ लिखने की कोशिश करनी हो.

Calendar API के इस्तेमाल की सीमा के टाइप

दो तरह के कोटे लागू किए जाते हैं:

  • हर प्रोजेक्ट के लिए हर मिनट के हिसाब से: यह आपके Google Cloud प्रोजेक्ट से किए गए अनुरोधों की संख्या है.
  • हर प्रोजेक्ट के लिए हर उपयोगकर्ता के हिसाब से हर मिनट: यह आपके Cloud प्रोजेक्ट में किसी एक खास उपयोगकर्ता के किए गए अनुरोधों की संख्या है. इस सीमा का मकसद यह पक्का करना है कि अपने उपयोगकर्ताओं के बीच, कॉन्टेंट का इस्तेमाल सही तरीके से किया जा सके.

कोटा का हिसाब, हर मिनट के हिसाब से स्लाइड करने वाली विंडो का इस्तेमाल करके लगाया जाता है. इसलिए, एक मिनट के दौरान, आपके हर मिनट के कोटा से ज़्यादा ट्रैफ़िक आने पर, अगली विंडो के दौरान दर कम हो जाएगी. इससे यह पक्का किया जा सकेगा कि औसतन आपका इस्तेमाल कोटा में रहे.

अगर कोटे से ज़्यादा हो गई हो, तो आपकी दर सीमित हो जाएगी और आपको अपनी क्वेरी के लिए 403 usageLimits स्टेटस कोड या 429 usageLimits स्टेटस कोड मिलेगा. ऐसा होने पर, ये काम किए जा सकते हैं:

  1. पक्का करें कि आपने सभी सबसे सही तरीकों का पालन किया है: एक्स्पोनेंशियल बैकऑफ़ का इस्तेमाल करें, ट्रैफ़िक पैटर्न को किसी भी क्रम में लगाएं, पुश नोटिफ़िकेशन का इस्तेमाल करें.
  2. अगर आपके प्रोजेक्ट में लोगों की संख्या बढ़ रही है और आपके पास ज़्यादा उपयोगकर्ता हैं, तो हर प्रोजेक्ट के कोटा को बढ़ाने का अनुरोध किया जा सकता है.
  3. अगर हर उपयोगकर्ता के लिए कोटा खत्म हो जाता है, तो ये काम किए जा सकते हैं:
    • अगर किसी सेवा खाते का इस्तेमाल किया जाता है, तो उपयोगकर्ताओं को लोड असाइन करें या उसे एक से ज़्यादा सेवा खातों में बांटें.
    • हर उपयोगकर्ता के लिए कोटा बढ़ाने का अनुरोध किया जा सकता है. हालांकि, आम तौर पर इसे डिफ़ॉल्ट वैल्यू से ज़्यादा करने का सुझाव नहीं दिया जाता. ऐसा इसलिए, क्योंकि हो सकता है कि आपका ऐप्लिकेशन दूसरी तरह की सीमाएं पार करने लगे, जैसे कि कैलेंडर के सामान्य इस्तेमाल की सीमाएं या ऑपरेशन से जुड़ी सीमाएं.

कोटा बढ़ाने के लिए अनुरोध

अपने प्रोजेक्ट के इस्तेमाल की सीमाएं देखने या बदलने या कोटा बढ़ाने का अनुरोध करने के लिए, यह तरीका अपनाएं:

  1. अगर आपके पास अपने प्रोजेक्ट के लिए, पहले से कोई बिलिंग खाता नहीं है, तो एक खाता बनाएं.
  2. एपीआई कंसोल में, एपीआई लाइब्रेरी के चालू एपीआई पेज पर जाएं और सूची से कोई एपीआई चुनें.
  3. कोटा से जुड़ी सेटिंग देखने और उनमें बदलाव करने के लिए, कोटा चुनें. इस्तेमाल के आंकड़े देखने के लिए, इस्तेमाल को चुनें.

एक्सपोनेन्शियल बैकऑफ़ का इस्तेमाल करें

जब हम चाहते हैं कि आप अनुरोधों की दर कम करें, तब हम 403 "usageLimits" रिस्पॉन्स या 429 रिस्पॉन्स देंगे (गड़बड़ी का पूरा दस्तावेज़ देखें). यह कोई गंभीर गड़बड़ी नहीं है और हम उम्मीद करते हैं कि आप थोड़ी देर के बाद फिर से अनुरोध करें. अगर अनुरोध अब भी बहुत जल्दी आ रहे हैं, तो हम फिर से पूछेंगे. ऐसे में हम आगे भी ऐसा ही करेंगे. यह सही तरीके से काम करे, इसके लिए यह ज़रूरी है कि समय के साथ अनुरोधों के बीच देरी बढ़ाई जाए.

आम तौर पर, आपको काटे गए एक्सपोनेन्शियल बैकऑफ़ का इस्तेमाल करना चाहिए. Cloud Storage के दस्तावेज़ में इस बात की बेहतर जानकारी मिलती है कि यह कैसे काम करता है और इसका पसंदीदा एल्गोरिदम क्या है. अगर Google क्लाइंट लाइब्रेरी का इस्तेमाल किया जा रहा है, तो आम तौर पर इसे ही मैनेज किया जाएगा. अपनी लाइब्रेरी का दस्तावेज़ देखें. आम तौर पर, लिखने के बजाय आपको लाइब्रेरी लागू करने का इस्तेमाल करना चाहिए.

ट्रैफ़िक का पैटर्न किसी भी क्रम में लगाना

कई क्लाइंट के एक ही समय में काम करने की वजह से कैलेंडर क्लाइंट में ट्रैफ़िक में बढ़ोतरी का खतरा रहता है. उदाहरण के लिए, Calendar क्लाइंट के लिए यह एक आम गलत तरीका है कि वे आधी रात में पूरी तरह सिंक कर लेते हैं. इससे तय है कि आपका हर मिनट का कोटा बढ़ जाएगा और उस दर को सीमित किया जाएगा और बैकऑफ़ भी लिया जाएगा.

इससे बचने के लिए पक्का करें कि आपका ट्रैफ़िक दिन भर जहां भी हो सके पूरे दिन फैला हुआ हो. अगर आपके क्लाइंट को हर दिन सिंक करना है, तो क्लाइंट से रैंडम समय तय करने के लिए कहें (हर क्लाइंट के लिए अलग). अगर आपको नियमित तौर पर कोई कार्रवाई करनी है, तो इंटरवल +/- 25% बदलें. इससे ट्रैफ़िक को ज़्यादा समान रूप से बांटा जाएगा और उपयोगकर्ताओं को बेहतर अनुभव मिलेगा.

पुश नोटिफ़िकेशन का इस्तेमाल करना

इसका एक सामान्य उदाहरण यह है कि जब भी उपयोगकर्ता के कैलेंडर में कुछ बदला जाता है, तो वह कार्रवाई करना चाहता है. यहां एक ऐंटी-पैटर्न यह है कि अपनी पसंद के हर कैलेंडर के लिए बार-बार पोल कराया जाए. यह बहुत तेज़ी से आपके पूरे कोटा का इस्तेमाल कर लेगा. उदाहरण के लिए, अगर आपके ऐप्लिकेशन में 5,000 उपयोगकर्ता हैं और हर उपयोगकर्ता के कैलेंडर पर एक मिनट में एक बार पोल कराया जाता है, तो कोई भी काम पूरा करने से पहले, आपको हर मिनट के लिए कम से कम 5,000 कोटा चाहिए होगा.

सर्वर-साइड ऐप्लिकेशन, पुश नोटिफ़िकेशन के लिए रजिस्टर कर सकते हैं. इससे हम आपको, किसी कार्रवाई के बारे में सूचना दे पाते हैं. इनके सेट अप के लिए ज़्यादा काम की ज़रूरत होती है. हालांकि, ये आपके कोटा का बेहतर तरीके से इस्तेमाल कर सकते हैं और बेहतर उपयोगकर्ता अनुभव दे सकते हैं. पक्का करें कि आपने वह eventType तय किया हो जिसके लिए आपको सूचना चाहिए. ज़्यादा जानकारी के लिए, पुश नोटिफ़िकेशन देखें.

सेवा खातों के साथ सही अकाउंटिंग

अगर आपका ऐप्लिकेशन पूरे डोमेन पर सौंप का इस्तेमाल करके अनुरोधों पर कार्रवाई कर रहा है, तो डिफ़ॉल्ट रूप से सेवा खाते से "हर उपयोगकर्ता के लिए हर मिनट के हिसाब से" कोटे के आधार पर शुल्क लिया जाता है, न कि उस उपयोगकर्ता के आधार पर जिसे आपने झूठी पहचान बताई है. इसका मतलब है कि सेवा खाते का कोटा खत्म हो जाएगा और रेट सीमित हो जाएगा. भले ही, वह कई उपयोगकर्ताओं के कैलेंडर पर काम कर रहा हो. quotaUser यूआरएल पैरामीटर या x-goog-quota-user एचटीटीपी हेडर का इस्तेमाल करके, इस समस्या से बचा जा सकता है. इससे पता चलता है कि किस उपयोगकर्ता से शुल्क लिया जाएगा. इसका इस्तेमाल सिर्फ़ कोटा कैलकुलेशन के लिए किया जाता है. ज़्यादा जानकारी के लिए, Cloud दस्तावेज़ में हर उपयोगकर्ता के लिए अनुरोधों को सीमित करना देखें.

कोटा की सीमा को मैनेज करना

यह पक्का करने के लिए कि आपका ऐप्लिकेशन, इस्तेमाल की जा रही कोटा सीमाओं तक पहुंचने के काम को आसान तरीके से मैनेज कर सके (उदाहरण के लिए, एक्सपोनेन्शियल बैकऑफ़ के साथ फिर से कोशिश करना) और आपके उपयोगकर्ताओं को किसी संभावित परेशानी को कम करने के लिए, हमारा सुझाव है कि आप इस स्थिति को असल में टेस्ट करें.

इस तरह की जांच से ऐप्लिकेशन के असल इस्तेमाल में कोई रुकावट न आए, इसके लिए हमारा सुझाव है कि आप Google API (एपीआई) कंसोल में एक अलग प्रोजेक्ट रजिस्टर करें. साथ ही, उसे अपने प्रोडक्शन प्रोजेक्ट की तरह ही कॉन्फ़िगर करें. इसके बाद, इस प्रोजेक्ट के लिए कोटा को आर्टिफ़िशियल तरीके से सेट किया जा सकता है और अपने ऐप्लिकेशन के व्यवहार पर नज़र रखी जा सकती है.

कीमत

Google Calendar API का इस्तेमाल करने के लिए, कोई अतिरिक्त शुल्क नहीं लिया जाता. अनुरोध की तय सीमा से ज़्यादा का इस्तेमाल करने पर, अलग से शुल्क नहीं लिया जाता. साथ ही, आपके खाते से बिल भी नहीं भेजा जाता.