Retry Logic
Retry-Logik ermöglicht es, fehlgeschlagene Operationen automatisch erneut zu versuchen. Dies ist entscheidend für robuste Workflows, die auch bei temporären Fehlern zuverlässig funktionieren.Warum Retry-Logik?
Temporäre Fehler sind häufig:- Netzwerk-Timeouts
- API-Rate Limits (429)
- Server-Überlastung (503)
- Temporäre Verbindungsprobleme
Ohne Retry
Ein Fehler = Workflow fehlgeschlagen
- Manuelle Intervention erforderlich
- Datenverlust möglich
- Unzuverlässige Automatisierung
Mit Retry
Automatische Wiederholung
- Temporäre Fehler werden überwunden
- Höhere Erfolgsrate
- Weniger manuelle Intervention
Retry-Strategien
Exponential Backoff
Die empfohlene Strategie für die meisten Fälle:Konzept
Konzept
Exponential Backoff erhöht Wartezeit exponentiell:Vorteile:
- Gibt Server Zeit zur Erholung
- Reduziert Last bei Überlastung
- Standard-Pattern für APIs
Implementierung
Implementierung
Exponential Backoff in Function Node:
Linear Backoff
Konstante Wartezeit zwischen Versuchen:Jitter hinzufügen
Zufällige Variation verhindert Thundering Herd:Retry-Implementierung
Error Trigger Node
Verwenden Sie Error Trigger für Retry-Logik:Workflow-Struktur
Workflow-Struktur
Typischer Retry-Workflow:
Error Trigger konfigurieren
Error Trigger konfigurieren
Error Trigger einrichten:
Retry-Logik mit Function Node
Vollständige Retry-Implementierung:Retryable vs. Non-Retryable Fehler
Retryable Fehler
Diese Fehler sollten wiederholt werden:429 Too Many Requests
Rate Limit erreicht - Wartezeit hilft
503 Service Unavailable
Temporäre Server-Überlastung
504 Gateway Timeout
Timeout - möglicherweise temporär
ECONNRESET
Verbindung zurückgesetzt - Netzwerkproblem
ETIMEDOUT
Timeout - möglicherweise temporär
500 Internal Server Error
Manchmal temporär (abhängig von API)
Non-Retryable Fehler
Diese Fehler sollten NICHT wiederholt werden:400 Bad Request
Ungültige Anfrage - wird nicht besser
401 Unauthorized
Authentifizierung fehlgeschlagen
403 Forbidden
Keine Berechtigung
404 Not Found
Ressource existiert nicht
422 Unprocessable Entity
Validierungsfehler
Retry-Patterns
Pattern 1: Node-Level Retry
Retry direkt im Node konfigurieren:Pattern 2: Workflow-Level Retry
Retry für gesamten Workflow-Bereich:Pattern 3: Conditional Retry
Retry nur bei bestimmten Bedingungen:Retry mit Rate Limit Handling
Retry-After Header verwenden
Respektieren Sie Retry-After Header:Best Practices
Max Retries begrenzen
Setzen Sie ein Maximum für Retries:
- Zu viele Retries können Kosten erhöhen
- Unendliche Loops vermeiden
- Typisch: 3-5 Retries
Exponential Backoff
Verwenden Sie Exponential Backoff:
- Gibt Server Zeit zur Erholung
- Reduziert Last
- Standard-Pattern
Jitter hinzufügen
Fügen Sie Jitter hinzu:
- Verhindert Thundering Herd
- Verteilt Last gleichmäßiger
- ±10-25% Variation
Retryable Errors identifizieren
Unterscheiden Sie retryable/non-retryable:
- Nicht alle Fehler sollten retryed werden
- 4xx Fehler meist nicht retryable
- 5xx Fehler oft retryable
Logging
Loggen Sie Retry-Versuche:
- Retry-Count tracken
- Fehler protokollieren
- Performance überwachen
Timeout berücksichtigen
Setzen Sie angemessene Timeouts:
- Zu kurze Timeouts = unnötige Retries
- Zu lange Timeouts = langsame Fehlerbehandlung
- Balance finden
Monitoring und Alerting
Retry-Metriken überwachen
Wichtige Metriken:Alerting bei häufigen Retries
Alert wenn Retry-Rate zu hoch:Checkliste
- Retry-Logik ist implementiert
- Max Retries ist begrenzt (3-5)
- Exponential Backoff wird verwendet
- Jitter ist hinzugefügt
- Retryable/Non-Retryable Fehler werden unterschieden
- Retry-After Header wird respektiert
- Retry-Versuche werden geloggt
- Retry-Metriken werden überwacht
- Alerting bei hoher Retry-Rate
Praktisches Beispiel
API-Call mit Retry-Logik
Vollständiges Beispiel:Nächste Schritte
Error Handling
Erfahren Sie mehr über umfassendes Error Handling.
Batching
Kombinieren Sie Retry-Logik mit Batch-Verarbeitung.
Performance
Optimieren Sie Retry-Logik für bessere Performance.
Testing
Testen Sie Retry-Logik mit verschiedenen Fehlerszenarien.
Wichtig: Retry-Logik sollte immer mit einem Maximum begrenzt werden, um unendliche Loops zu vermeiden. Dokumentieren Sie Ihre Retry-Strategie für zukünftige Wartung.
