Middleware zur Unterstützung von Timeouts.
In Webdiensten können bestimmte Anfragen aufgrund verschiedener Gründe (wie langsame Datenbankabfragen, verzögerte Antworten externer Dienste etc.) zu langen Verarbeitungszeiten führen. Um zu verhindern, dass diese langlaufenden Anfragen Serverressourcen blockieren und die Bearbeitung anderer Anfragen beeinträchtigen, kann die Timeout-Middleware verwendet werden, um eine maximale Bearbeitungszeit für Anfragen festzulegen. Wird dieses Zeitlimit überschritten, wird die Anfrage automatisch abgebrochen und ein Timeout-Fehler zurückgegeben.
Beispielcode
In dem obigen Beispiel haben wir zwei Handler-Funktionen erstellt: einen schnell antwortenden fast
und einen, der erst nach 6 Sekunden antwortet (slow
). Durch Timeout::new(Duration::from_secs(5))
wird für alle Anfragen ein Timeout-Limit von 5 Sekunden gesetzt. Beim Aufruf des /slow
-Endpunkts wird die Anfrage aufgrund der Überschreitung der 5-Sekunden-Grenze abgebrochen, während der /fast
-Endpunkt normal verarbeitet und ein Ergebnis zurückgibt.