गाइड

विफल लुकअप को सही तरीके से दोबारा आज़माएँ

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

दोबारा आज़माने लायक त्रुटियाँ

503 रिस्पॉन्स का मतलब है कि सेवा अस्थायी रूप से उपलब्ध नहीं है, और यह ठीक उसी तरह की अस्थायी स्थिति है जिसके लिए थोड़ी देर बाद किया जाने वाला रीट्राई बना है। आपकी अपनी ओर का नेटवर्क टाइमआउट, जिसमें आपको कोई रिस्पॉन्स मिला ही नहीं, इसी श्रेणी में आता है, क्योंकि हो सकता है अनुरोध प्रोसेस हुआ हो या न हुआ हो।

HTTP/1.1 503 Service Unavailable

{
  "status": "error",
  "error": {"code": "service_unavailable", "message": "Temporarily unavailable, try again shortly"}
}

दोबारा आज़माने लायक नहीं त्रुटियाँ

400 का मतलब है कि अनुरोध ख़ुद ग़लत बना था, जैसे कोई ज़रूरी पैरामीटर ग़ायब होना या निर्देशांक सीमा से बाहर होना। 401 का मतलब है कि ऑथेंटिकेशन विफल हुआ। मूल समस्या ठीक किए बिना इनमें से किसी को भी दोबारा आज़माने से बस वही त्रुटि फिर आती है, और ज़्यादातर मामलों में हर कोशिश फिर भी एक अनुरोध के रूप में गिनी जाती है, इसलिए ग़लत अनुरोध पर चलता रीट्राई लूप बेवजह आपका कोटा ख़त्म कर सकता है।

कोशिशों के बीच बैकऑफ़

एक अकेले इंटरैक्टिव लुकअप के लिए तय छोटी देरी ठीक है, लेकिन कई विफल आइटम को दोबारा आज़माने वाले बैच जॉब को धीरे-धीरे बैकऑफ़ करना चाहिए, यानी कोशिशों के बीच इंतज़ार को एक उचित ऊपरी सीमा तक दोगुना करते जाना, ताकि एक छोटा आउटेज सेवा बहाल होते ही रीट्राई की बाढ़ में न बदल जाए।

429 अपने आप में अलग मामला है

429 असल में दोबारा आज़माने लायक विफलता कम और रुकने का संकेत ज़्यादा है। तय छोटी देरी पर दोबारा आज़माने के बजाय X-Quota-Reset हेडर पढ़ें और तब तक इंतज़ार करें, क्योंकि रीसेट से पहले दोबारा आज़माने पर बस बार-बार वही 429 मिलेगा।

अनुरोध की लागत ध्यान में रखना

सर्वर तक पहुँचने वाली हर रीट्राई कोशिश, सफल हो या नहीं, एक अनुरोध है। अस्थायी और स्थायी त्रुटियों के अंतर का सम्मान करने वाली रीट्राई रणनीति आपके दैनिक कोटा और प्रीपेड क्रेडिट को बार-बार की विफलताओं के बजाय असली काम पर ख़र्च होने देती है।

"फिर से कोशिश करें" और "पहले इसे ठीक करें" में फ़र्क करना ही एक अच्छी रीट्राई रणनीति का ज़्यादातर हिस्सा है। त्रुटियों वाला पेज API के लौटाए जाने वाले हर त्रुटि कोड और उसे ट्रिगर करने वाली चीज़ की सूची देता है।