Graceful Shutdown bedeutet, dass der Server beim Herunterfahren nicht sofort alle Verbindungen beendet, sondern zunächst keine neuen Anfragen mehr annimmt und gleichzeitig bereits angenommene Anfragen ausreichend Zeit zur Bearbeitung lässt, bevor der Dienst geschlossen wird. Diese Methode vermeidet ein abruptes Abbrechen von Anfragen und verbessert sowohl die Benutzererfahrung als auch die Systemzuverlässigkeit.
Salvo bietet Unterstützung für Graceful Shutdown durch die handle
-Methode des Server
-Objekts, mit der ein Server-Handle abgerufen wird, und anschließend den Aufruf der stop_graceful
-Methode. Nach dem Aufruf dieser Methode wird der Server:
Hier ein einfaches Beispiel:
In diesem Beispiel:
server.handle()
ruft einen Server-Handle ab, der zur Steuerung des Server-Lebenszyklus verwendet werden kannhandle.stop_graceful(None)
initiiert den Graceful-Shutdown-Prozess, wobei None
bedeutet, dass keine Timeout-Zeit gesetzt wird und auf den Abschluss aller Anfragen gewartet wirdSome(Duration)
übergeben werden, wonach verbleibende Verbindungen nach Ablauf der Zeit gewaltsam geschlossen werdenDieser Ansatz ist besonders nützlich für Anwendungen, die in Container-Umgebungen oder Cloud-Plattformen bereitgestellt werden, sowie für Fälle, in denen Hot-Updates durchgeführt werden müssen, ohne dass Anfragen unerwartet abgebrochen werden.