JavaScript Academy · पाठ

पुनः प्रयास और बैकऑफ़ के तरीके

विफल async कार्य को थोड़ी देरी के साथ कुछ बार दोहराएँ; घातीय बैकऑफ़ और हल्का जिटर जोड़ें; स्पष्ट अधिकतम सीमा के बाद रुकें।

पाठ 3, कुल 3 में से8 चरण

पुनः प्रयास और बैकऑफ़ के तरीके, CoddyKit पर JavaScript Academy का एक निःशुल्क पाठ है। यह 3 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह JavaScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। JavaScript Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।

पुनः प्रयास क्यों करें?

लक्ष्य: छोटे, नियंत्रित पुनः प्रयास जोड़ना।

  • सरल पुनः प्रयास चक्र
  • घातीय प्रतीक्षा-अंतराल
  • बहुत हल्का यादृच्छिक उतार-चढ़ाव
  • अधिकतम प्रयासों की स्पष्ट सीमा
पुनः प्रयास और बैकऑफ़ के तरीके — चित्र 1

विलंब सहायक

प्रयासों के बीच रुकने के लिए आपको एक छोटा विलंब सहायक चाहिए।

// delay: resolve after ms
function delay(ms) {
  return new Promise(function (resolve) {
    setTimeout(function () { resolve(); }, ms);
  });
}

async function demoDelay() {
  console.log("wait...");
  await delay(5);
  console.log("done");
}

demoDelay();
पुनः प्रयास और बैकऑफ़ के तरीके — चित्र 2

कृत्रिम अस्थिर कार्य

यह कृत्रिम कार्य आपको वास्तविक नेटवर्क कॉल किए बिना पुनः प्रयासों का अभ्यास करने देता है।

// Unstable task: fails first N times, then succeeds
function makeUnstable(failCount, value) {
  let left = failCount;
  return async function run() {
    if (left > 0) {
      left = left - 1;
      throw new Error("temporary");
    }
    return value;
  };
}

const sometimes = makeUnstable(2, "OK");
sometimes().catch(function (e) { console.log("first:", e.message); });
पुनः प्रयास और बैकऑफ़ के तरीके — चित्र 3

निश्चित पुनः प्रयास चक्र

निश्चित अंतराल: प्रयासों के बीच समान समय प्रतीक्षा करें और अधिकतम प्रयासों के बाद रुक जाएँ।

// Retry a few times with a fixed wait
async function retryFixed(fn, tries, waitMs) {
  let lastError = null;
  for (let i = 1; i <= tries; i++) {
    try {
      return await fn();
    } catch (e) {
      lastError = e;
      console.log("attempt", i, "failed:", e.message);
      if (i < tries) {
        await delay(waitMs);
      }
    }
  }
  throw lastError;
}

(async function () {
  const job = makeUnstable(2, "OK");
  const result = await retryFixed(job, 3, 5);
  console.log("fixed result:", result);
})();
पुनः प्रयास और बैकऑफ़ के तरीके — चित्र 4

घातीय प्रतीक्षा-अंतराल

प्रतीक्षा-अंतराल: हर प्रयास के साथ प्रतीक्षा बढ़ाएँ और अचानक बढ़ोतरी से बचने के लिए बहुत हल्का यादृच्छिक उतार-चढ़ाव जोड़ें।

// Exponential backoff with a tiny jitter
function jitter(ms) {
  const wiggle = Math.floor(Math.random() * 3); // 0..2
  return ms + wiggle;
}

async function retryBackoff(fn, tries, baseMs) {
  let lastError = null;
  for (let i = 1; i <= tries; i++) {
    try {
      return await fn();
    } catch (e) {
      lastError = e;
      console.log("attempt", i, "failed:", e.message);
      if (i < tries) {
        const wait = jitter(baseMs * Math.pow(2, i - 1));
        await delay(wait);
      }
    }
  }
  throw lastError;
}

(async function () {
  const job = makeUnstable(2, "OK");
  const value = await retryBackoff(job, 4, 3);
  console.log("backoff result:", value);
})();
पुनः प्रयास और बैकऑफ़ के तरीके — चित्र 5

पुनः प्रयास के सुझाव

सुझाव:

  • केवल अस्थायी त्रुटियों पर पुनः प्रयास करें (समय-समाप्ति, दर सीमाएँ)।
  • गलत दिए गए मानों पर पुनः प्रयास न करें।
  • प्रयासों की संख्या कम (3–5) रखें और विफलताओं का संक्षिप्त विवरण दर्ज करें।
पुनः प्रयास और बैकऑफ़ के तरीके — चित्र 6

पुनः प्रयास/प्रतीक्षा-अंतराल—प्रश्नोत्तरी

त्वरित जाँच: प्रतीक्षा-अंतराल की मूल बातें।

पुनः प्रयास और बैकऑफ़ के तरीके — चित्र 7

पुनरावलोकन

पुनरावलोकन: आपने निश्चित पुनः प्रयास चक्र बनाया, बहुत हल्के यादृच्छिक उतार-चढ़ाव के साथ घातीय प्रतीक्षा-अंतराल जोड़ा और ऐप को उत्तरदायी बनाए रखने के लिए अधिकतम प्रयास तय किए।

पुनः प्रयास और बैकऑफ़ के तरीके — चित्र 8
शुरुआत निःशुल्क

एआई शिक्षक के साथ JavaScript सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
59
पाठ
200

अक्सर पूछे जाने वाले प्रश्न

क्या “पुनः प्रयास और बैकऑफ़ के तरीके” पाठ निःशुल्क है?

हाँ — JavaScript Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “पुनः प्रयास और बैकऑफ़ के तरीके” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। JavaScript Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।

“पुनः प्रयास और बैकऑफ़ के तरीके” में मैं क्या सीखूँगा?

विफल async कार्य को थोड़ी देरी के साथ कुछ बार दोहराएँ; घातीय बैकऑफ़ और हल्का जिटर जोड़ें; स्पष्ट अधिकतम सीमा के बाद रुकें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ JavaScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या JavaScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर JavaScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 3 में से 3वाँ पाठ है।

“पुनः प्रयास और बैकऑफ़ के तरीके” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस JavaScript Academy पाठ में कोड लिख और चला सकता हूँ?

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

इस पाठ्यक्रम के सभी पाठ

  1. async फ़ंक्शन लिखना; try/catch; समानांतर बनाम क्रमिक निष्पादन
  2. टाइमआउट और AbortController से रद्द करना
  3. पुनः प्रयास और बैकऑफ़ के तरीके
← JavaScript Academy पर वापस जाएँ