L'arrêt élégant (graceful shutdown) désigne le processus où, lors de la fermeture d'un serveur, on ne termine pas immédiatement toutes les connexions, mais on cesse d'abord d'accepter de nouvelles requêtes tout en laissant aux requêtes déjà acceptées suffisamment de temps pour terminer leur traitement avant d'arrêter le service. Cette approche évite l'interruption brutale des requêtes, améliorant ainsi l'expérience utilisateur et la fiabilité du système.
Salvo prend en charge l'arrêt élégant via la méthode handle
du Server
, qui permet d'obtenir un gestionnaire de serveur, puis en appelant la méthode stop_graceful
. Après l'appel de cette méthode, le serveur:
Voici un exemple simple:
Dans cet exemple:
server.handle()
obtient un gestionnaire de serveur qui permet de contrôler son cycle de viehandle.stop_graceful(None)
initie le processus d'arrêt élégant, où None
signifie qu'aucun délai d'expiration n'est défini - le serveur attend indéfiniment que toutes les requêtes soient traitéesSome(Duration)
, après quoi les connexions restantes seront fermées de forceCette méthode est particulièrement utile pour les applications déployées dans des environnements conteneurisés ou sur des plateformes cloud, ainsi que pour les mises à jour à chaud où il est essentiel d'éviter l'interruption inattendue des requêtes.