Я запускаю resque в качестве планировщика в своем новейшем приложении и заметил интересную небольшую особенность. Приложение, которое мы создаем, представляет собой просто REST API, и его не постоянно атакуют. Итак, что он делает все время, так это запускает некоторые запланированные каждые две минуты задания для обновления данных, которые он передает из API.
Ну вот и причуда - пока приложение не будет сброшено через HTTP хотя бы один раз, приложение не перезапускается, и спасатели все еще работают, используя старую версию приложения.
Я полагаю, это потому, что с Passenger, когда вы просто касаетесь файла tmp/restart.txt, он просто помечает приложение, так что в следующий раз, когда оно получит запрос, оно перезапустится. Но если он НЕ получает удар, он еще не перезапускается! Есть ли способ обойти это? Есть ли способ сказать пассажиру перезапустить приложение и перезагрузить его среду прямо сейчас, а не в следующий раз, когда он получит HTTP-запрос?