Gestione degli errori e dei tentativi successivi
Caso: la sincronizzazione notturna non deve perdere dati se E-CUBE è momentaneamente irraggiungibile, e non deve ripetere all'infinito un blocco errato.
Classificazione
| Risposta | Tipo | Azione |
|---|---|---|
401 | Token | Nuovo token, poi un solo nuovo tentativo |
403 | Definitivo | Controlla nome della risorsa e permessi |
408, 429, 5xx, timeout, errore di rete | Temporaneo | Ripeti con attesa crescente |
Altri 4xx | Definitivo | Non ripetere: correggi i dati e registra il corpo della risposta |
Attesa crescente
tentativo 1 → attesa 2 s → tentativo 2 → attesa 4 s → tentativo 3 → attesa 8 s → errore
Aggiungi una componente casuale (jitter) e un numero massimo di tentativi.
Scritture a blocchi
- Ferma il passo al primo blocco rifiutato e registra numero del blocco, record coinvolti e corpo della risposta.
- Ripeti un blocco solo per errori temporanei.
- Se un blocco viene rifiutato per i dati, dividilo per isolare il record errato.
Codice
La classe EcubeClient implementa il rinnovo del token su 401 e il retry con attesa crescente sugli errori temporanei. La versione JavaScript fa lo stesso.