С помощью Unicorn вы можете перезапустить и перезагрузить приложение Rails с помощью kill -USR2 [master process]
, что не приводит к немедленному завершению процесса, но запускает новый основной процесс + подчиненные процессы в фоновом режиме. Когда новый мастер будет готов, вы можете отключить старый мастер с помощью kill -QUIT
. Это позволяет перезапустить ваш веб-сайт, чтобы посетители не заметили замедления обработки запросов.
Но с Passenger вы перезапускаете приложение Rails с помощью touch tmp/restart.txt
, что, насколько я могу судить, приводит к тому, что приложение Rails перестает отвечать на запросы в течение нескольких секунд, необходимых для перезапуска приложения Rails.
Есть ли способ использовать Passenger, но также можно без проблем перезапустить приложение Rails?