इस्तेमाल करने की सीमा

Google Drive API एक शेयर की जाने वाली सेवा है. इसलिए, हम इस पर कोटा और सीमाएं लागू करते हैं, ताकि सभी उपयोगकर्ता इसका सही तरीके से इस्तेमाल कर सकें. साथ ही, Google Workspace सिस्टम की परफ़ॉर्मेंस को सुरक्षित रखा जा सके.

सूचनाएं सूचना चैनल खोलते समय, बताए गए पते पर डिलीवर की गई सूचनाएं, आपके कोटा की सीमाओं में शामिल नहीं की जाती हैं. हालांकि, changes.watch, channels.stop और files.watch तरीकों के लिए किए गए कॉल, आपके कोटा में शामिल किए जाते हैं.

अगर आपने कोटा की सीमा पार कर ली है, तो आपको 403: User rate limit exceeded एचटीटीपी स्टेटस कोड वाला जवाब मिलेगा. Drive के बैकएंड पर, रेट लिमिट की अतिरिक्त जांच करने पर, 429: Too many requestsवाला जवाब भी मिल सकता है. अगर ऐसा होता है, तो आपको एक एक्स्पोनेंशियल बैकऑफ़ एल्गोरिदम का इस्तेमाल करना चाहिए और बाद में फिर से कोशिश करनी चाहिए. अगर आप हर मिनट के लिए तय किए गए नीचे दिए गए कोटा के अंदर रहते हैं, तो हर दिन किए जा सकने वाले अनुरोधों की संख्या पर कोई सीमा नहीं है.

यहां दी गई टेबल में, क्वेरी की सीमाओं के बारे में बताया गया है:

कोटा
क्वेरी
हर 60 सेकंड में 12,000
हर उपयोगकर्ता के लिए, हर 60 सेकंड में 12,000

समय के हिसाब से तय किए गए कोटा से जुड़ी गड़बड़ियां ठीक करना

समय के हिसाब से तय की गई सभी गड़बड़ियों (हर X मिनट में ज़्यादा से ज़्यादा N अनुरोध) के लिए, हमारा सुझाव है कि आपका कोड, अपवाद को पकड़ ले और ट्रंकेटेड एक्स्पोनेंशियल बैकऑफ़ का इस्तेमाल करे. इससे यह पक्का किया जा सकेगा कि आपके डिवाइस पर ज़्यादा लोड न पड़े.

एक्स्पोनेंशियल बैकऑफ़, नेटवर्क ऐप्लिकेशन के लिए गड़बड़ी ठीक करने की एक स्टैंडर्ड रणनीति है. एक एक्स्पोनेंशियल बैकऑफ़ एल्गोरिदम, अनुरोधों के बीच इंतज़ार के समय को एक्स्पोनेंशियल तरीके से बढ़ाकर, अनुरोधों को फिर से भेजता है. यह तब तक किया जाता है, जब तक बैकऑफ़ का समय ज़्यादा से ज़्यादा न हो जाए. अगर अनुरोध अब भी पूरे नहीं होते हैं, तो यह ज़रूरी है कि अनुरोध पूरे होने तक, अनुरोधों के बीच का समय बढ़ता रहे.

एल्गोरिदम का उदाहरण

एक्स्पोनेंशियल बैकऑफ़ एल्गोरिदम, अनुरोधों को एक्स्पोनेंशियल तरीके से फिर से भेजता है. साथ ही, कोशिशों के बीच इंतज़ार का समय तब तक बढ़ाता है, जब तक बैकऑफ़ का समय ज़्यादा से ज़्यादा न हो जाए. उदाहरण के लिए:

  1. Google Drive API को अनुरोध भेजें.
  2. अगर अनुरोध पूरा नहीं होता है, तो 1 + random_number_milliseconds तक इंतज़ार करें और अनुरोध को फिर से भेजें.
  3. अगर अनुरोध पूरा नहीं होता है, तो 2 + random_number_milliseconds तक इंतज़ार करें और अनुरोध को फिर से भेजें.
  4. अगर अनुरोध पूरा नहीं होता है, तो 4 + random_number_milliseconds तक इंतज़ार करें और अनुरोध को फिर से भेजें.
  5. इसी तरह, maximum_backoff समय तक कोशिश करते रहें.
  6. कुछ बार कोशिश करने की सीमा तक इंतज़ार करें और फिर से कोशिश करें. हालांकि, कोशिशों के बीच इंतज़ार की अवधि न बढ़ाएं.

कहां:

  • इंतज़ार का समय min(((2^n)+random_number_milliseconds), maximum_backoff), है. इसमें हर बार (अनुरोध) के लिए n में 1 जोड़ा जाता है.
  • random_number_milliseconds मिलीसेकंड की एक रैंडम संख्या है. यह 1,000 से कम या इसके बराबर होती है. इससे उन स्थितियों से बचने में मदद मिलती है जिनमें कई क्लाइंट, किसी स्थिति के हिसाब से सिंक हो जाते हैं और सभी एक साथ फिर से कोशिश करते हैं. इससे, सिंक किए गए वेव में अनुरोध भेजे जाते हैं. हर बार अनुरोध को फिर से भेजने के बाद, random_number_milliseconds की वैल्यू फिर से कैलकुलेट की जाती है.
  • maximum_backoff आम तौर पर 32 या 64 सेकंड होता है. सही वैल्यू इस्तेमाल के हिसाब से तय होती है.

maximum_backoff समय पूरा होने के बाद, क्लाइंट फिर से कोशिश कर सकता है. इसके बाद, कोशिशों के बीच बैकऑफ़ का समय बढ़ाने की ज़रूरत नहीं होती. उदाहरण के लिए, अगर कोई क्लाइंट maximum_backoff समय के तौर पर 64 सेकंड का इस्तेमाल करता है, तो इस वैल्यू तक पहुंचने के बाद, क्लाइंट हर 64 सेकंड में फिर से कोशिश कर सकता है. कुछ समय बाद, क्लाइंट को हमेशा के लिए फिर से कोशिश करने से रोका जाना चाहिए.

कोशिशों के बीच इंतज़ार का समय और कोशिशों की संख्या, इस्तेमाल के हिसाब से तय होती है साथ ही, यह नेटवर्क की स्थितियों पर भी निर्भर करती है.

कीमत

Google Drive API का इस्तेमाल, बिना किसी अतिरिक्त शुल्क के किया जा सकता है. कोटा के अनुरोध की सीमाओं को पार करने पर, कोई अतिरिक्त शुल्क नहीं लगता. साथ ही, आपके खाते से पैसे नहीं काटे जाते.

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

अपने प्रोजेक्ट के संसाधन के इस्तेमाल के हिसाब से, कोटा में बदलाव करने का अनुरोध किया जा सकता है. किसी सेवा खाते से किए गए एपीआई कॉल को, एक खाते का इस्तेमाल माना जाता है. बदले हुए कोटा के लिए आवेदन करने से, मंज़ूरी मिलने की गारंटी नहीं मिलती. कोटा में बदलाव के ऐसे अनुरोधों को मंज़ूरी मिलने में ज़्यादा समय लग सकता है जिनसे कोटा की वैल्यू में काफ़ी बढ़ोतरी हो सकती है.

सभी प्रोजेक्ट के लिए कोटा एक जैसा नहीं होता. समय के साथ-साथ, Google Cloud का इस्तेमाल बढ़ने पर, हो सकता है कि आपको कोटा की वैल्यू बढ़ाने की ज़रूरत पड़े. अगर आपको लगता है कि आने वाले समय में इस्तेमाल में काफ़ी बढ़ोतरी होगी, तो Google Cloud Console में कोटा पेज से, कोटा में बदलाव करने का अनुरोध किया जा सकता है.

ज़्यादा जानने के लिए, ये संसाधन देखें: