O desligamento elegante refere-se ao processo em que, ao encerrar um servidor, não se interrompem imediatamente todas as conexões. Em vez disso, primeiro para-se de aceitar novas requisições, enquanto as requisições já aceitas têm tempo suficiente para serem processadas antes do serviço ser desativado. Essa abordagem evita a interrupção abrupta de requisições, melhorando a experiência do usuário e a confiabilidade do sistema.
O Salvo oferece suporte a desligamento elegante através do método handle
do Server
, que obtém um manipulador do servidor, permitindo então chamar o método stop_graceful
para implementar essa funcionalidade. Após chamar esse método, o servidor:
Aqui está um exemplo simples:
No exemplo acima:
server.handle()
obtém um manipulador do servidor, que pode ser usado para controlar seu ciclo de vidahandle.stop_graceful(None)
inicia o processo de desligamento elegante, onde None
indica que não há tempo limite definido - o servidor aguardará indefinidamente até que todas as requisições sejam concluídasSome(Duration)
, após o qual as conexões remanescentes serão forçadamente encerradasEssa abordagem é particularmente útil para aplicações implantadas em ambientes de contêineres ou plataformas em nuvem, bem como para atualizações em tempo real onde é essencial garantir que as requisições não sejam interrompidas inesperadamente.