Middleware di Timeout
Fornisce supporto middleware per la gestione dei timeout.
Casi d'Uso
Nei servizi web, alcune richieste potrebbero richiedere troppo tempo per essere elaborate a causa di vari motivi (come query di database lente, risposte ritardate da servizi esterni, ecc.). Per evitare che queste richieste a lunga esecuzione consumino risorse del server e influenzino l'elaborazione di altre richieste, è possibile utilizzare un middleware di timeout per impostare un limite massimo di tempo di elaborazione per le richieste. Se questo limite temporale viene superato, la richiesta verrà automaticamente interrotta e verrà restituito un errore di timeout.
Codice di Esempio
Nell'esempio sopra, abbiamo creato due funzioni di gestione: una fast a risposta rapida e una slow che ritarda di 6 secondi prima di rispondere. È stato impostato un limite di timeout di 5 secondi per tutte le richieste utilizzando Timeout::new(Duration::from_secs(5)). Quando si accede al percorso /slow, la richiesta scadrà perché il tempo di elaborazione supera il limite di 5 secondi. Al contrario, quando si accede al percorso /fast, la richiesta verrà elaborata normalmente e restituirà un risultato.