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