0Pricing
JavaScript Academy · Lektion

Muster für Wiederholungen und Backoff

Fehlschlagende asynchrone Vorgänge einige Male mit Verzögerungen wiederholen; exponentielles Backoff und kleinen Jitter hinzufügen; nach einem klaren Maximum stoppen

Muster für Wiederholungen und Backoff ist eine kostenlose JavaScript Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des JavaScript Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der JavaScript Academy-Kurs umfasst insgesamt 3 Lektionen.

Warum Wiederholungsversuche?

Ziel: Kleine, kontrollierte Wiederholungsversuche hinzufügen.

  • Einfache Retry-Schleife
  • Exponentielles Backoff
  • Geringfügiger Jitter
  • Klare maximale Anzahl an Versuchen
Muster für Wiederholungen und Backoff — Illustration 1

Verzögerungsfunktion

Sie benötigen eine kleine Hilfsfunktion für eine Verzögerung, um zwischen Versuchen zu pausieren.

// 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();
Muster für Wiederholungen und Backoff — Illustration 2

Instabile Arbeit simulieren

Mit dieser simulierten Aufgabe können Sie Wiederholungsversuche üben, ohne echte Netzwerkaufrufe auszuführen.

// 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); });
Muster für Wiederholungen und Backoff — Illustration 3

Feste Retry-Schleife

Festes Intervall: Warten Sie zwischen den Versuchen jeweils gleich lange und beenden Sie die Schleife nach der maximalen Anzahl an Versuchen.

// 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);
})();
Muster für Wiederholungen und Backoff — Illustration 4

Exponentielles Backoff

Backoff: Erhöhen Sie die Wartezeit bei jedem Versuch und fügen Sie einen geringfügigen Jitter hinzu, um Lastspitzen zu vermeiden.

// 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);
})();
Muster für Wiederholungen und Backoff — Illustration 5

Tipps für Wiederholungsversuche

Tipps:

  • Wiederholen Sie nur bei vorübergehenden Fehlern (Timeouts, Ratenbegrenzungen).
  • Wiederholen Sie bei ungültigen Eingaben nicht.
  • Halten Sie die Anzahl der Versuche klein (3–5) und protokollieren Sie Fehler kurz.
Muster für Wiederholungen und Backoff — Illustration 6

Quiz zu Retry und Backoff

Kurzer Check: Grundlagen des Backoffs

Muster für Wiederholungen und Backoff — Illustration 7

Zusammenfassung

Zusammenfassung: Sie haben eine feste Retry-Schleife erstellt, ein exponentielles Backoff mit geringfügigem Jitter hinzugefügt und eine maximale Anzahl an Versuchen festgelegt, damit Apps reaktionsfähig bleiben.

Muster für Wiederholungen und Backoff — Illustration 8

Häufig gestellte Fragen

Ist die Lektion „Muster für Wiederholungen und Backoff“ kostenlos?

Ja — der vollständige Text von „Muster für Wiederholungen und Backoff“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des JavaScript Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der JavaScript Academy-Kurs umfasst insgesamt 3 Lektionen.

Was lerne ich in „Muster für Wiederholungen und Backoff“?

Fehlschlagende asynchrone Vorgänge einige Male mit Verzögerungen wiederholen; exponentielles Backoff und kleinen Jitter hinzufügen; nach einem klaren Maximum stoppen Du übst JavaScript Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um JavaScript Academy zu starten?

Keine Vorkenntnisse erforderlich. JavaScript Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 3.

Wie lange dauert die Lektion „Muster für Wiederholungen und Backoff“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser JavaScript Academy-Lektion Code schreiben und ausführen?

Ja. Jede JavaScript Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Async-Funktionen schreiben; try/catch; parallel vs. sequenziell
  2. Timeouts und Abbrechen mit AbortController
  3. Muster für Wiederholungen und Backoff
← Zurück zu JavaScript Academy