Unterscheide vorübergehende Fehler, ungültige Aufträge und unklare Schreibausgänge.
Eine Wiederholungsregel benennt Fehlerklasse, Höchstzahl und Wartezeit. Ein ungültiger Auftrag wird durch Warten nicht gültig. Ein vorübergehender Lesefehler kann einen neuen Versuch erlauben. Ein unklarer Schreibausgang ist schwieriger: Die erste Aktion könnte bereits gewirkt haben. Ein stabiler Idempotenzschlüssel erlaubt der zuständigen Stelle, denselben logischen Auftrag wiederzuerkennen und sein Ergebnis statt einer zweiten Wirkung zurückzugeben. Der Schlüssel allein reicht ohne passende Speicher- und Prüfregel nicht. Beende die Versuchsschleife nach Erfolg und protokolliere Versuch und nächsten zulässigen Zeitpunkt getrennt.
Ein Beispiel
Fiktiver Leseexport erlaubt höchstens drei Versuche, nach einem vorübergehenden Fehler fünf Sekunden Abstand. Versuch 1 endet 09:00:04 mit Lesefehler; Versuch 2 darf 09:00:09 starten und gelingt. Versuch 3 entfällt. Bei einem unklaren Schreibausgang wird zuerst der Auftragsschlüssel export-17 mit seinem gespeicherten Ergebnis geprüft, bevor dieselbe Wirkung erneut angefordert wird.
Python 3.11 · Lehrbeispiel
outcomes = ["read_failed", "ok", "ok"]
attempts = []
for number, outcome in enumerate(outcomes, start=1):
attempts.append((number, outcome))
if outcome == "ok":
break
print(attempts)
print("Versuche:", len(attempts))
Erwartete Ausgabe
[(1, 'read_failed'), (2, 'ok')]
Versuche: 2