Timeout-Middleware
Bietet Middleware-Unterstützung für Timeout-Behandlung.
Anwendungsfälle
In Webdiensten können bestimmte Anfragen aus verschiedenen Gründen (wie langsame Datenbankabfragen, verzögerte Antworten externer Dienste usw.) zu lange zur Verarbeitung benötigen. Um zu verhindern, dass diese langlaufenden Anfragen Serverressourcen beanspruchen und die Verarbeitung anderer Anfragen beeinträchtigen, kann eine Timeout-Middleware verwendet werden, um eine maximale Verarbeitungszeitbegrenzung für Anfragen festzulegen. Wenn diese Zeitbegrenzung überschritten wird, wird die Anfrage automatisch beendet und ein Timeout-Fehler zurückgegeben.
Beispielcode
Im obigen Beispiel haben wir zwei Handler-Funktionen erstellt: einen schnell antwortenden fast und einen slow, der 6 Sekunden verzögert, bevor er antwortet. Für alle Anfragen wird eine Timeout-Begrenzung von 5 Sekunden mit Timeout::new(Duration::from_secs(5)) festgelegt. Beim Zugriff auf den Pfad /slow wird die Anfrage aufgrund der Überschreitung der 5-Sekunden-Grenze zeitlich begrenzt. Im Gegensatz dazu wird beim Zugriff auf den Pfad /fast die Anfrage normal verarbeitet und ein Ergebnis zurückgegeben.