Sinatra: le code chaud pousse dans la production?

Lorsque je pousse le nouveau code de mon application Sinatra sur mon serveur de production, je déclenche actuellement un redémarrage du passager en touchant tmp/restart.txt , qui charge les nouvelles modifications. Le problème est que le site est pratiquement arrêté pendant environ 10 secondes au cours de ce processus.

Comment puis-je configurer mon serveur pour éviter complètement les temps d’arrêt?

C’est-à-dire que je souhaite que l’application continue à servir l’ancienne version du code jusqu’à ce que le nouveau code soit complètement chargé, puis à basculer instantanément vers le nouveau code.

L’utilisation de fusil de chasse ou de sinatra / rechargeur ne fonctionnera pas ici, car il s’agit d’un environnement de production. Enfin, si la réponse dépend du serveur d’applications, je serais intéressé par la manière de le faire à la fois avec Licorne et Passager.

Ce que vous recherchez, c’est le redémarrage. Phusion Passenger Enterprise prend en charge ceci: http://www.modrails.com/documentation/Users%20guide%20Nginx.html#PassengerRollingRestarts