सीमा तक पहुँचने से पहले अपनी कुंजी के उपयोग पर नज़र रखें
काम के साथ-साथ अपने कोटा हेडर देखते रहने से पता चलता है कि कब सीमा करीब आ रही है, किसी अनुरोध के असल में अस्वीकार होने से काफ़ी पहले।
जो टाइमआउट मान एक पते के लुकअप के लिए ठीक काम करता है, वह कुछ हज़ार आइटम वाले बल्क अनुरोध को सर्वर के सबको प्रोसेस करने से काफ़ी पहले ही काट देगा, जो विफलता जैसा दिखता है, भले ही पर्याप्त समय मिलने पर अनुरोध पूरा हो जाता।
बल्क array का हर आइटम अपने आप में एक लुकअप है, इसलिए 2,000 आइटम वाले अनुरोध में एक लुकअप की तुलना में लगभग 2,000 गुना प्रोसेसिंग होती है, भले ही आपकी ओर से यह एक ही HTTP कॉल हो। एक या दो सेकंड का टाइमआउट, जो एक पते के लिए ठीक है, इतने बड़े अनुरोध के लिए बिल्कुल भी काफ़ी नहीं है।
अपने क्लाइंट का टाइमआउट भेजी जा रही array के आकार के अनुपात में सेट करें, सामान्य उतार-चढ़ाव के लिए कुछ गुंजाइश के साथ, बजाय इसके कि आपका कोड हर अनुरोध के लिए, छोटा हो या बड़ा, एक ही तय मान इस्तेमाल करे।
timeout_seconds = max(5, item_count * 0.05)यह आपके अपने देखे गए व्यवहार के हिसाब से समायोजित करने का शुरुआती बिंदु है, न कि कोई तय संख्या जिसे आधिकारिक माना जाए, क्योंकि प्रति आइटम प्रोसेसिंग का वास्तविक समय कोई प्रकाशित गारंटी नहीं है।
लगातार बड़े होते एक ही अनुरोध के लिए टाइमआउट मान बढ़ाते जाने के बजाय, बहुत बड़े काम को कुछ सौ से लेकर कुछ हज़ार आइटम वाले हिस्सों में बाँटें। छोटे हिस्सों को छोटे और ज़्यादा अनुमान लगाने लायक टाइमआउट चाहिए, और बीच में विफलता होने पर आपका सिर्फ़ मौजूदा हिस्सा जाता है, पूरा काम नहीं।
अगर आपकी ओर से किसी अनुरोध का टाइमआउट हो जाता है, तो शायद आपको पता न हो कि सर्वर ने उसे वास्तव में प्रोसेस कर लिया या नहीं। उसी हिस्से को आँख मूँदकर दोबारा भेजने के बजाय, जो मूल अनुरोध पूरा हो जाने की स्थिति में आपके कोटे पर दोहरी गिनती कर सकता है, अपनी सबसे हाल की सफल कॉल के कोटा हेडर देखकर अनुमान लगाएँ कि टाइमआउट वाला हिस्सा शायद पूरा हुआ या नहीं, और सावधानी से दोबारा भेजें।
टाइमआउट पूरी तरह क्लाइंट-साइड सेटिंग है कि आप कितनी देर इंतज़ार करने को तैयार हैं। इसका अनुरोध की लागत पर कोई असर नहीं होता, जो अब भी प्रोसेस हुए हर आइटम के लिए एक अनुरोध है, चाहे आपके क्लाइंट ने पूरा समय इंतज़ार किया हो या पहले ही हार मान ली हो।
टाइमआउट को बैच के आकार से मिलाना, और एक बहुत बड़े अनुरोध के बजाय कई छोटे हिस्सों को प्राथमिकता देना, बड़े कामों को भरोसेमंद भी रखता है और कुछ गड़बड़ होने पर दोबारा शुरू करने में आसान भी। बड़े कामों के लिए हिस्सों में बाँटने और कोटे की रणनीति रेट लिमिट दस्तावेज़ में आगे विस्तार से दी गई है।