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

Google Sheets API एक शेयर की गई सेवा है. हम सभी उपयोगकर्ताओं के लिए, Google Workspace सिस्टम की परफ़ॉर्मेंस को बेहतर बनाए रखने के लिए, कोटा और सीमाएं लागू करते हैं.

सीमाएं

Sheets API में, एपीआई अनुरोध के लिए साइज़ की कोई तय सीमा नहीं होती. हालांकि, उपयोगकर्ताओं को अलग-अलग प्रोसेसिंग कॉम्पोनेंट से जुड़ी सीमाओं का सामना करना पड़ सकता है. इन कॉम्पोनेंट को Google Sheets कंट्रोल नहीं करता. अनुरोधों को तेज़ी से प्रोसेस करने के लिए, हमारा सुझाव है कि पेलोड का साइज़ ज़्यादा से ज़्यादा 2 एमबी हो.

Sheets API के लिए, एक मिनट में किए जा सकने वाले अनुरोधों की सीमा तय होती है. यह सीमा हर मिनट रीफ़िल होती है. उदाहरण के लिए, हर प्रोजेक्ट के लिए हर मिनट में 300 बार पढ़ने का अनुरोध किया जा सकता है. अगर आपका ऐप्लिकेशन एक मिनट में 350 अनुरोध भेजता है, तो अतिरिक्त 50 अनुरोध कोटे से ज़्यादा हो जाते हैं. इससे 429: Too many requests एचटीटीपी स्टेटस कोड जनरेट होता है. अगर ऐसा होता है, तो आपको एक्सपोनेंशियल बैकऑफ़ एल्गोरिदम का इस्तेमाल करना चाहिए. एक मिनट बाद, अनुरोधों को फिर से पूरा किया जा सकता है.

यहां दी गई टेबल में अनुरोधों की सीमाओं के बारे में बताया गया है:

कोटा
अनुरोधों को पढ़ सकता है
हर प्रोजेक्ट के लिए, हर मिनट 300
हर उपयोगकर्ता के लिए, हर प्रोजेक्ट के हिसाब से हर मिनट में किए जा सकने वाले अनुरोधों की संख्या 60
अनुरोध लिखना
हर प्रोजेक्ट के लिए, हर मिनट 300
हर उपयोगकर्ता के लिए, हर प्रोजेक्ट के हिसाब से हर मिनट में किए जा सकने वाले अनुरोधों की संख्या 60

फ़ाइल की सीमाओं के बारे में जानने के लिए, Google Drive में स्टोर की जा सकने वाली फ़ाइलें लेख पढ़ें.

व्यवहार और सीमाएं

((sheets_api_short)) का इस्तेमाल करते समय, इन बातों का ध्यान रखें. साथ ही, उन सीमाओं के बारे में भी जानें जिनका असर आपके कोटे पर पड़ता है:

  • पढ़ने के अनुरोध, किसी भी ऐसे तरीके के लिए किए गए कॉल होते हैं जो स्प्रेडशीट से डेटा वापस लाता है. जैसे, get या search. स्प्रेडशीट में बदलाव करने वाले किसी भी तरीके को राइट रिक्वेस्ट कहा जाता है. जैसे, update, clear या copyTo.

  • उपयोगकर्ता एक साथ कई अनुरोध सबमिट कर सकते हैं. हालांकि, ऐसा तब ही किया जा सकता है, जब वे कोटा की सीमा के अंदर हों. हर बैच अनुरोध को, इस्तेमाल की सीमा के हिसाब से एक एपीआई अनुरोध के तौर पर गिना जाता है. इसमें कोई भी उप-अनुरोध शामिल है.

  • सभी Sheets अनुरोधों को एक साथ लागू किया जाता है. इसका मतलब है कि अगर कोई अनुरोध मान्य नहीं है, तो पूरा अपडेट पूरा नहीं होगा. साथ ही, (संभावित रूप से निर्भर) कोई भी बदलाव लागू नहीं होगा.

  • एक एपीआई अनुरोध को प्रोसेस करने के लिए, ज़्यादा से ज़्यादा समय तय किया गया है. जब Sheets किसी अनुरोध को 180 सेकंड से ज़्यादा समय तक प्रोसेस करता है, तो अनुरोध में टाइम आउट की गड़बड़ी दिखती है.

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

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

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

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

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

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

  1. Google Sheets 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 बार कोशिश करने के बाद भी, क्लाइंट फिर से कोशिश कर सकता है. इस पॉइंट के बाद, फिर से कोशिश करने पर बैकऑफ़ टाइम को बढ़ाने की ज़रूरत नहीं होती. उदाहरण के लिए, अगर कोई क्लाइंट 64 सेकंड का maximum_backoff इस्तेमाल करता है, तो इस वैल्यू तक पहुंचने के बाद, क्लाइंट हर 64 सेकंड में फिर से कोशिश कर सकता है. किसी समय, क्लाइंट को बार-बार कोशिश करने से रोका जाना चाहिए.

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

कीमत

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

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

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

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

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