Middleware de Timeout
Fournit une prise en charge de middleware pour la gestion des délais d'attente.
Cas d'utilisation
Dans les services web, certaines requêtes peuvent prendre trop de temps à traiter pour diverses raisons (telles que des requêtes de base de données lentes, des réponses retardées de services externes, etc.). Pour éviter que ces requêtes de longue durée ne consomment les ressources du serveur et n'affectent le traitement des autres requêtes, un middleware de timeout peut être utilisé pour définir une limite de temps de traitement maximale pour les requêtes. Si cette limite de temps est dépassée, la requête sera automatiquement interrompue et une erreur de timeout sera renvoyée.
Exemple de code
Dans l'exemple ci-dessus, nous avons créé deux fonctions de gestion : une fonction fast à réponse rapide et une fonction slow qui retarde de 6 secondes avant de répondre. Une limite de timeout de 5 secondes est définie pour toutes les requêtes en utilisant Timeout::new(Duration::from_secs(5)). Lors de l'accès au chemin /slow, la requête expirera car le temps de traitement dépasse la limite de 5 secondes. En revanche, lors de l'accès au chemin /fast, la requête sera traitée normalement et renverra un résultat.