डिस्कनेक्शन क्या है?
स्ट्रीमिंग कनेक्शन डिस्कनेक्ट क्यों हो सकता है
- प्रमाणीकरण से जुड़ी त्रुटि (जैसे गलत टोकन या गलत प्रमाणीकरण विधि का उपयोग)।
- X की ओर किसी स्ट्रीमिंग सर्वर का रीस्टार्ट होना। यह आमतौर पर कोड डिप्लॉयमेंट से संबंधित होता है, इसलिए इसकी संभावना सामान्य मानी जानी चाहिए और सिस्टम को उसी के अनुसार डिज़ाइन किया जाना चाहिए।
- आपका क्लाइंट स्ट्रीम द्वारा भेजे जा रहे पोस्ट्स की मात्रा के साथ तालमेल नहीं बैठा पा रहा है या डेटा बहुत धीमी गति से पढ़ रहा है। हर स्ट्रीमिंग कनेक्शन के साथ क्लाइंट को भेजे जाने वाले संदेशों की एक कतार होती है। अगर समय के साथ यह कतार बहुत बड़ी हो जाती है, तो कनेक्शन बंद कर दिया जाएगा।
- आपके खाते ने पोस्ट्स का अपना दैनिक/मासिक कोटा पार कर लिया है।
- आपके पास बहुत अधिक सक्रिय अतिरिक्त कनेक्शन हैं।
- कोई क्लाइंट अचानक डेटा पढ़ना बंद कर देता है। अगर स्ट्रीम से पढ़े जा रहे पोस्ट्स की दर अचानक गिर जाती है, तो कनेक्शन बंद कर दिया जाएगा।
- सर्वर और क्लाइंट के बीच संभावित नेटवर्क संबंधी समस्याएँ
- सर्वर पक्ष की कोई अस्थायी समस्या, निर्धारित रखरखाव या अपडेट। (status page देखें)
डिस्कनेक्शन का अनुमान लगाना और फिर से कनेक्ट करना
- आपके कोड को यह पता लगाना चाहिए कि नया कंटेंट और heartbeat आना कब बंद हो जाता है।
- यदि ऐसा होता है, तो आपके कोड को पुनःकनेक्शन logic ट्रिगर करनी चाहिए। कुछ clients और languages आपको read timeout निर्दिष्ट करने की अनुमति देते हैं, जिसे आप 20 सेकंड पर सेट कर सकते हैं।
- आपकी सेवा को इन डिस्कनेक्शनों का पता लगाना चाहिए और यथाशीघ्र फिर से कनेक्ट करना चाहिए।
- TCP/IP स्तर की network errors के लिए रैखिक रूप से back off करें। ये समस्याएँ आम तौर पर अस्थायी होती हैं और जल्दी ठीक हो जाती हैं। हर प्रयास के साथ reconnect के बीच विलंब 250ms बढ़ाएँ, अधिकतम 16 सेकंड तक।
- उन HTTP errors के लिए, जिनमें फिर से कनेक्ट करना उपयुक्त हो, घातीय रूप से back off करें। 5 सेकंड की प्रतीक्षा से शुरू करें, हर प्रयास के साथ इसे दोगुना करें, अधिकतम 320 सेकंड तक।
- HTTP 429 errors Rate limit exceeded के लिए घातीय रूप से back off करें। 1 मिनट की प्रतीक्षा से शुरू करें और हर प्रयास के साथ इसे दोगुना करें। ध्यान दें कि हर HTTP 429 मिलने पर वह समय बढ़ जाता है, जितना आपको तब तक प्रतीक्षा करनी होगी जब तक आपके खाते पर rate limiting लागू रहना बंद नहीं हो जाता।
खोए हुए डेटा की पुनर्प्राप्ति
रेट लिमिट्स और उपयोग
- x-rate-limit-limit उन आवंटित requests की संख्या बताता है, जिन्हें आपका client 15 मिनट की विंडो के दौरान कर सकता है।
- x-rate-limit-remaining 15 मिनट की विंडो में अब तक किए गए requests की संख्या बताता है।
- x-rate-limit-reset एक UNIX timestamp है, जो यह बताता है कि 15 मिनट की विंडो कब फिर से शुरू होगी, और x-rate-limit-remaining को 0 पर reset कर देगी।