Webhook-Wiederholungsplan
Fünf exponentielle Wiederholungen ab einer Basis von 1000 warten 1000, 2000, 4000, 8000 und 16000, zusammen 31000: Wählen Sie Anzahl, Basisverzögerung und Strategie und erhalten Sie den vollständigen Plan mit kumulierten Wartezeiten. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Maximale Wiederholungen
- 5
- Basisverzögerung
- 1.000
- Strategie
- Exponential
- Verzögerungen
- 1.000, 2.000, 4.000, 8.000, 16.000
- Gesamtwartezeit
- 31.000
- Anzahl der Versuche
- 5
fest, linear, exponentiell
Warum ein Wiederholungsplan aufgeschrieben gehört
Schlägt eine Ereignisbenachrichtigung fehl, wartet das sendende System und versucht es erneut. Wer diese Benachrichtigungen zustellt und wer sie empfängt, braucht eine ausdrückliche Liste der Wartezeiten vor jedem Versuch, kein vages Versprechen, dass irgendwo ein Backoff greift. Ohne veröffentlichten Plan kann der Betrieb die schlechteste Zustellverzögerung nicht abschätzen, und Lastsimulationen bilden die genauen Abstände nicht nach, die der Produktivbetrieb zwischen den Versuchen einfügt. Dieses Werkzeug nimmt eine Höchstzahl an Wiederholungen, eine Basisverzögerung über null und eine Strategie und liefert die Verzögerung jedes Versuchs, die kumulierte Wartezeit und eine kurze Formel, die Sie neben ein Dashboard oder in Ihr Betriebshandbuch stellen können.
Fest, linear oder exponentiell und der typische Fehler
Fester Backoff behält bei jedem Versuch dieselbe Basisverzögerung: leicht zu durchschauen und schonend für Empfänger, die nur eine kurze Abkühlpause brauchen. Linearer Backoff multipliziert die Basis mit der Versuchsnummer, gezählt ab eins, sodass spätere Versuche proportional länger warten, ohne so schnell zu wachsen wie beim exponentiellen. Exponentieller Backoff verdoppelt jedes Mal: Fünf Wiederholungen ab 1000 ergeben 1000, 2000, 4000, 8000 und 16000, zusammen 31000. Der typische Fehler ist eine Basisverzögerung von null oder darunter, die eine Warteschlange in eine Dauerschleife schicken würde; sie wird sofort abgelehnt. Halten Sie alle Verzögerungen in einer Einheit, meist Millisekunden.
Häufige Fragen
Enthält der Plan zufälligen Jitter?
Legen Sie eigenen Jitter darüber, wenn Sie Streuung zwischen Workern brauchen.
Wie lang ist die Gesamtwartezeit bei fünf exponentiellen Wiederholungen?
Bei einer Basisverzögerung von 1000 betragen die Wartezeiten 1000, 2000, 4000, 8000 und 16000, und die kumulierte Wartezeit erreicht 31000 vor dem fünften Versuch. Das Ergebnis nutzt die Einheit, die Sie gewählt haben, meist Millisekunden.
Was unterscheidet festen, linearen und exponentiellen Backoff?
Fest wartet vor jedem Versuch dieselbe Basisverzögerung. Linear multipliziert die Basis mit der Nummer des Versuchs, gezählt ab eins. Exponentiell verdoppelt die Wartezeit jedes Mal: Basis mal zwei hoch Versuchsnummer minus eins.
Welche Einheit sollte die Basisverzögerung haben?
Jede beliebige, solange alle Verzögerungen dieselbe nutzen; üblich sind Millisekunden. Die Basis muss größer als null sein, denn eine Wartezeit von null oder darunter ließe eine Warteschlange ohne Pause erneut versuchen, deshalb werden solche Werte abgelehnt.
Wie viele Wiederholungen kann ich planen?
Von 1 bis 100. Jeder Versuch erhält genau eine Verzögerung, bevor er startet, und der Plan zeigt Versuchsnummer, eigene Verzögerung und bisherige Gesamtwartezeit, sodass Sie die schlechteste Zustellzeit sofort ablesen.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/dev/webhook-retry-schedule-build \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"max_retries":5,"base_delay":1000,"strategy":"exponential"}'const res = await fetch("https://api.kit.forhosting.com/dev/webhook-retry-schedule-build", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"max_retries": 5,
"base_delay": 1000,
"strategy": "exponential"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/webhook-retry-schedule-build",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"max_retries": 5,
"base_delay": 1000,
"strategy": "exponential"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/webhook-retry-schedule-build", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"max_retries":5,"base_delay":1000,"strategy":"exponential"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"max_retries":5,"base_delay":1000,"strategy":"exponential"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/webhook-retry-schedule-build", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"max_retries": 5,
"base_delay": 1000,
"strategy": "exponential"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.webhook_retry_schedule_build",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Webhook-Empfänger und Zustell-Worker brauchen eine explizite Liste von Wartezeiten vor jedem erneuten Versuch, kein vages Versprechen, dass Backoff irgendwo im Stack greift. Dieser Generator für Webhook-Zustellungs-Wiederholungspläne nimmt eine maximale Wiederholungsanzahl, eine streng positive Basisverzögerung und eine Strategie fest, linear oder exponentiell und liefert die Verzögerungen je Versuch, kumulierte Wartezeiten sowie eine kurze Formel, die Sie in Tests verankern oder neben einem Dashboard anzeigen können. Dieselbe reine Logik läuft kostenlos im Browser und über die API, sodass die Offline-Planung einer fünfstufigen exponentiellen Leiter dem entspricht, was Ihr Edge-Worker bei Notify-Pfaden oder eigenen Zustellschleifen nutzt. Ungültige Basisverzögerungen scheitern sofort mit invalid_input, statt Null- oder Negativwartezeiten zu erfinden, die eine Warteschlange im Busy-Loop halten würden.
Was ein Webhook-Wiederholungsplan ist und wie sich die drei Strategien unterscheiden
Ohne veröffentlichten Plan können Betreiber die Worst-Case-Zustelllatenz nicht einschätzen, und Lasttests können die exakten Lücken nicht reproduzieren, die ein Produktions-Worker zwischen Wiederholungen einfügt. Fester Backoff behält bei jedem Versuch dieselbe Basisverzögerung: einfach zu durchschauen und schonend für nachgelagerte Systeme, die nur eine kurze Abkühlphase brauchen. Linearer Backoff multipliziert die Basisverzögerung mit dem einsbasierten Versuchsindex, sodass spätere Wiederholungen proportional länger warten, ohne so schnell zu explodieren wie reines exponentielles Wachstum. Ein Webhook-Zustellungs-Wiederholungsplan ist die geordnete Liste der Verzögerungen, die Sie vor Versuch eins, Versuch zwei und so weiter nach einem fehlgeschlagenen POST an die Abonnenten-URL abwarten. Diese Fähigkeit kodiert drei gängige Backoff-Familien aus Message-Bussen und HTTP-Clients. Exponentieller Backoff verdoppelt die vorherige Verzögerung jeweils mit base_delay mal zwei hoch Versuch minus eins — das klassische Muster bei transienten Netzfehlern und Ratenlimits. Sie liefern max_retries als Anzahl zu materialisierender Wiederholungsplätze, base_delay als positiven Keim in Ihrer gewählten Einheit (meist Millisekunden) und strategy als fixed, linear oder exponential. Die Antwort spiegelt diese Eingaben, listet delays geordnet, summiert sie als total_wait und expandiert ein schedule-Array mit Versuchsnummer, Verzögerung und kumulativer Wartezeit, sodass UI-Diagramme und Konfigurationsgeneratoren keine Extra-Arithmetik brauchen.
Eingabevertrag, Antwortform und wann die Validierung scheitert
Senden Sie per POST einen JSON-Körper mit drei Pflichtfeldern. max_retries ist eine ganze Zahl von eins bis hundert und benennt, wie viele Wiederholungsversuche geplant werden. base_delay ist eine endliche Zahl strikt größer als null in einer konsistenten Einheit; null und negative Werte werden abgelehnt, weil eine nicht positive Wartezeit entweder busy-spinnt oder für die Planung sinnlos ist. strategy muss die Zeichenkette fixed, linear oder exponential sein (nach Trim ohne Groß-/Kleinschreibung). Alias-Schlüssel wie retries, base_ms und backoff werden akzeptiert, damit bestehende Konfigurationsformen sauber abbilden. Fehlende Felder, nicht-ganzzahlige max_retries, nicht-endliche base_delay und unbekannte Strategien lösen invalid_input aus und werden nicht abgerechnet. Bei Erfolg enthält der Körper max_retries, base_delay, strategy, delays als flaches Array, total_wait als Summe der Verzögerungen, attempt_count gleich max_retries, schedule als Objekte mit attempt, delay und cumulative sowie formula mit der geschlossenen Form der gewählten Strategie. Beispiel: max_retries fünf, base_delay eintausend, strategy exponential liefert Verzögerungen eintausend, zweitausend, viertausend, achttausend und sechzehntausend mit total_wait einunddreißigtausend. Kombinieren Sie den Plan mit Ihrer eigenen Jitter-Politik, wenn Sie zufällige Streuung brauchen; dieser Endpunkt lässt Jitter und Wanduhr-Zeitstempel absichtlich weg, damit Ergebnisse zwischen Browser und API deterministisch bleiben. max_retries ist auf hundert begrenzt, damit ein Tippfehler kein riesiges Payload aufbläht und Zwischenprodukte bei großen exponentiellen Leitern nicht überlaufen.
Wo das Erstellen eines Wiederholungsplans in realen Systemen Nutzen stiftet
Lasttest-Harnesses injizieren dasselbe Verzögerungsarray wie der Produktions-Worker und schließen die klassische Lücke, in der Staging schneller erneut versucht als Produktion und Ratenlimit-Fehler maskiert. Zustellplattformen mit Webhook-Zuverlässigkeitseinstellungen können diesen Generator aufrufen, wenn ein Operator Maximalversuche und einen Backoff-Modus wählt, und die resultierenden Verzögerungen neben Endpoint-Geheimnis und Signaturschlüssel speichern. Incident-Runbooks profitieren von einem druckbaren total_wait, damit Bereitschaftspersonal weiß, wie lange ein unzuverlässiger Abonnent vor dem letzten Versuch nachhängen kann. OpenAPI- und SDK-Generatoren können konkrete Beispielleitern dokumentieren, ohne Tabellen von Hand zu pflegen, die vom Laufzeitcode abdriften. Weil die Implementierung reines Parse-Tier-A ist, kostet jeder erfolgreiche Aufruf den veröffentlichten Grundpreis $0.002 ohne Modell-Tokens und ohne ausgehendes Netz; fehlgeschlagene Validierung wird nicht berechnet. Halten Sie base_delay und total_wait in derselben Einheit wie Ihre Sleep-Primitive, damit Sie beim Einbinden des Plans in eine Worker-Schleife nie versehentlich Millisekunden in Sekunden umrechnen.
Integrationsbeispiele
Webhook-Zustell-Backoff im Dashboard konfigurieren
Lassen Sie Operatoren Maximalversuche und feste, lineare oder exponentielle Strategie wählen und die berechnete Verzögerungsliste neben jedem Abonnenten-Endpoint speichern.
Worst-Case-Zustelllatenz dokumentieren
Zeigen Sie total_wait und kumulative Verzögerungen je Versuch in Runbooks, damit die Bereitschaft weiß, wie lange Wiederholungen vor dem Dead-Letter dauern können.
Golden-Pläne in der CI verankern
Prüfen Sie, dass Konfigurationsdateien zu denselben Verzögerungsarrays wie Produktions-Worker expandieren und so versehentliche strategy- oder base_delay-Regressionen fangen.
Technische Fragen
Wie erstelle ich einen Webhook-Zustellungs-Wiederholungsplan?
Senden Sie max_retries (1–100), ein positives base_delay und strategy fixed, linear oder exponential. Die API liefert geordnete delays, total_wait und einen Plan mit kumulierten Wartezeiten je Versuch.
Worin unterscheiden sich fester, linearer und exponentieller Backoff?
Fest wiederholt base_delay bei jedem Versuch. Linear nutzt base_delay mal Versuchsnummer. Exponentiell nutzt base_delay mal zwei hoch Versuch minus eins.
Warum muss base_delay positiv sein?
Null- oder Negativverzögerungen definieren keine sinnvolle Wartezeit vor einer Wiederholung und riskieren einen Busy-Loop des Zustell-Workers. Nicht positives base_delay scheitert mit invalid_input und wird nicht abgerechnet.
Was kostet das Erstellen eines Webhook-Wiederholungsplans?
Das Browser-Werkzeug ist kostenlos. API-Anfragen nutzen vorausbezahltes KIT-Guthaben zu $0.002 pro erfolgreichem Aufruf; ungültige Eingabe wird nicht abgerechnet.