Middleware de Tiempo de Espera
Proporciona soporte de middleware para el manejo de tiempos de espera.
Casos de Uso
En servicios web, ciertas solicitudes pueden tardar demasiado en procesarse por diversas razones (como consultas de base de datos lentas, respuestas tardías de servicios externos, etc.). Para evitar que estas solicitudes de larga duración consuman recursos del servidor y afecten el procesamiento de otras solicitudes, se puede utilizar un middleware de tiempo de espera para establecer un límite máximo de tiempo de procesamiento para las solicitudes. Si se excede este límite de tiempo, la solicitud se terminará automáticamente y se devolverá un error de tiempo de espera.
Código de Ejemplo
En el ejemplo anterior, creamos dos funciones de manejo: una fast que responde rápidamente y una slow que retrasa 6 segundos antes de responder. Se establece un límite de tiempo de espera de 5 segundos para todas las solicitudes utilizando Timeout::new(Duration::from_secs(5)). Al acceder a la ruta /slow, la solicitud agotará el tiempo de espera porque el tiempo de procesamiento excede el límite de 5 segundos. Por el contrario, al acceder a la ruta /fast, la solicitud se procesará normalmente y devolverá un resultado.