Google Drive API एक शेयर की गई सेवा है. इसलिए, हम इस पर कोटा और सीमाएं लागू करते हैं. ऐसा इसलिए किया जाता है, ताकि सभी उपयोगकर्ता इसका सही तरीके से इस्तेमाल कर सकें. साथ ही, Google Workspace सिस्टम की परफ़ॉर्मेंस को सुरक्षित रखा जा सके.
सूचना चैनल खोलते समय दिए गए पते पर भेजी गई सूचनाएं, आपके कोटे की सीमाओं में शामिल नहीं होती हैं. हालांकि, changes.watch
, channels.stop
, और files.watch
तरीकों को कॉल करने पर, आपके कोटे में गिनती होती है.
कोटा से ज़्यादा अनुरोध करने पर, आपको 403: User rate limit
exceeded
एचटीटीपी स्टेटस कोड वाला जवाब मिलेगा. Drive के बैकएंड पर, दर की सीमा की अतिरिक्त जांच करने पर भी 429: Too many
requests
जवाब जनरेट हो सकता है. अगर ऐसा होता है, तो आपको एक्स्पोनेंशियल बैकऑफ़ एल्गोरिदम का इस्तेमाल करना चाहिए. इसके बाद, कुछ समय बाद फिर से कोशिश करें. अगर आप यहां दिए गए हर मिनट के कोटे के हिसाब से अनुरोध करते हैं, तो एक दिन में किए जाने वाले अनुरोधों की संख्या पर कोई पाबंदी नहीं है.
यहां दी गई टेबल में क्वेरी की सीमाओं के बारे में बताया गया है:
कोटा | |||||
---|---|---|---|---|---|
क्वेरी |
|
समय के हिसाब से तय किए गए कोटे से जुड़ी गड़बड़ियां ठीक करना
समय के आधार पर होने वाली सभी गड़बड़ियों (हर X मिनट में ज़्यादा से ज़्यादा N अनुरोध) के लिए, हमारा सुझाव है कि आपका कोड अपवाद को पकड़ ले और ट्रंकेटेड एक्सपोनेंशियल बैकऑफ़ का इस्तेमाल करे. इससे यह पक्का किया जा सकेगा कि आपके डिवाइस ज़्यादा लोड जनरेट न करें.
एक्सपोनेंशियल बैकऑफ़, नेटवर्क ऐप्लिकेशन के लिए गड़बड़ी ठीक करने की एक स्टैंडर्ड रणनीति है. एक्सपोनेंशियल बैकऑफ़ एल्गोरिदम, अनुरोधों को फिर से भेजने की कोशिश करता है. इसके लिए, अनुरोधों के बीच इंतज़ार का समय तेज़ी से बढ़ता जाता है. यह इंतज़ार का ज़्यादा से ज़्यादा समय तक होता है. अगर अनुरोध अब भी पूरा नहीं होता है, तो यह ज़रूरी है कि अनुरोधों के बीच का समय धीरे-धीरे बढ़ता जाए, ताकि अनुरोध पूरा हो सके.
एल्गोरिदम का उदाहरण
एक्सपोनेंशियल बैकऑफ़ एल्गोरिदम, अनुरोधों को बार-बार भेजता है. इससे, अनुरोधों के बीच इंतज़ार का समय बढ़ता जाता है. यह इंतज़ार का समय, बैकऑफ़ के ज़्यादा से ज़्यादा समय तक बढ़ सकता है. उदाहरण के लिए:
- Google Drive API से अनुरोध करें.
- अगर अनुरोध पूरा नहीं होता है, तो 1 +
random_number_milliseconds
सेकंड इंतज़ार करें और फिर से अनुरोध करें. - अगर अनुरोध पूरा नहीं होता है, तो 2 +
random_number_milliseconds
सेकंड इंतज़ार करें और फिर से अनुरोध करें. - अगर अनुरोध पूरा नहीं होता है, तो 4 +
random_number_milliseconds
सेकंड इंतज़ार करें और फिर से अनुरोध करें. - और इसी तरह,
maximum_backoff
बार तक. - कुछ समय तक इंतज़ार करें और फिर से कोशिश करें. हालांकि, कोशिश करने के बीच इंतज़ार की अवधि न बढ़ाएं.
कहां:
- आपको
min(((2^n)+random_number_milliseconds), maximum_backoff)
तक इंतज़ार करना होगा. हर अनुरोध के लिए,n
में 1 की बढ़ोतरी होती है. random_number_milliseconds
, 1,000 से कम या इसके बराबर मिलीसेकंड की कोई रैंडम संख्या है. इससे उन मामलों से बचने में मदद मिलती है जिनमें कई क्लाइंट एक ही स्थिति में सिंक्रनाइज़ हो जाते हैं और सभी एक साथ फिर से कोशिश करते हैं. इससे अनुरोध सिंक्रनाइज़ किए गए वेव में भेजे जाते हैं. फिर से कोशिश करने के हर अनुरोध के बाद,random_number_milliseconds
की वैल्यू फिर से कैलकुलेट की जाती है.maximum_backoff
की अवधि आम तौर पर 32 या 64 सेकंड होती है. सही वैल्यू, इस्तेमाल के उदाहरण पर निर्भर करती है.
क्लाइंट, maximum_backoff
बार कोशिश करने के बाद भी फिर से कोशिश कर सकता है.
इस पॉइंट के बाद, फिर से कोशिश करने पर बैकऑफ़ टाइम को बढ़ाने की ज़रूरत नहीं होती. उदाहरण के लिए, अगर कोई क्लाइंट 64 सेकंड का maximum_backoff
इस्तेमाल करता है, तो इस वैल्यू तक पहुंचने के बाद, क्लाइंट हर 64 सेकंड में फिर से कोशिश कर सकता है. किसी समय, क्लाइंट को बार-बार कोशिश करने से रोकना चाहिए.
फिर से कोशिश करने के बीच का इंतज़ार का समय और फिर से कोशिश करने की संख्या, आपके इस्तेमाल के उदाहरण और नेटवर्क की स्थितियों पर निर्भर करती है.
कीमत
Google Drive API का इस्तेमाल, बिना किसी शुल्क के किया जा सकता है. कोटा के अनुरोधों की सीमा से ज़्यादा अनुरोध करने पर, आपसे कोई अतिरिक्त शुल्क नहीं लिया जाता. साथ ही, आपके खाते से कोई शुल्क नहीं काटा जाता.
कोटा बढ़ाने का अनुरोध करना
प्रोजेक्ट में इस्तेमाल किए गए संसाधनों के आधार पर, कोटा में बदलाव करने का अनुरोध किया जा सकता है. सेवा खाते से किए गए एपीआई कॉल को, एक ही खाते से किए गए कॉल माना जाता है. बदले गए कोटे के लिए आवेदन करने से, मंज़ूरी मिलने की गारंटी नहीं मिलती. कोटा अडजस्ट करने के ऐसे अनुरोधों को मंज़ूरी मिलने में ज़्यादा समय लग सकता है जिनसे कोटा वैल्यू में काफ़ी बढ़ोतरी होती है.
सभी प्रोजेक्ट के लिए, एक जैसे कोटा उपलब्ध नहीं होते. समय के साथ-साथ, Google Cloud का इस्तेमाल बढ़ने पर, आपको कोटा की वैल्यू बढ़ाने की ज़रूरत पड़ सकती है. अगर आपको लगता है कि आने वाले समय में, इस्तेमाल में काफ़ी बढ़ोतरी हो सकती है, तो Google Cloud Console में कोटा पेज पर जाकर, कोटा में बदलाव करने का अनुरोध करें.
ज़्यादा जानने के लिए, यहां दिए गए संसाधन देखें:
- कोटा अडजस्टमेंट के बारे में जानकारी
- कोटा के मौजूदा इस्तेमाल और सीमाओं को देखना
- कोटा बढ़ाने का अनुरोध करना