Я запускаю приложение, которое запускает процесс Rufus Scheduler в инициализаторе. Приложение работает с Пассажиром в производстве, и я заметил пару странных поведений:Rails продолжает перезагружаться в производстве Passenger
Во-первых, чтобы перезапустить сервер и убедиться, что инициализатор запущен, вам необходимо как touch tmp/restart.txt
, так и загрузить приложение в браузере , В этот момент запускается инициализатор. Ужасно то, что если вы делаете только прикосновение, процессы, запланированные Rufus, будут сброшены и не будут перенесены до тех пор, пока вы не загрузите приложение в браузере.
Только это я могу иметь. Но это приводит к второй проблеме: я заметил, что запланированный процесс не запущен, поэтому я загружаю страницу, и вдруг файл журнала сообщает мне, что он запускает инициализаторы, как если бы я перезагрузился. Итак, в какой-то момент Пассажир случайно перезагружается, как если бы я коснулся tmp/restart.txt и уничтожил запланированные процессы.
У меня невероятно плохое понимание интеграции Passenger and Rails, поэтому я не знаю, является ли эта случайная перезагрузка аберрантной или всей частью архитектуры. Может ли кто-нибудь предложить какую-либо мудрость в этой ситуации?
На самом деле вы можете использовать PassengerMinInstances (Apache) или пассажирские_инсталляции (nginx), чтобы поддерживать один процесс во все времена. Я думаю, что это более новые версии Passenger, которые, возможно, не были выпущены, когда ответ Джеффа был впервые опубликован. Вам все еще нужен файл блокировки Rufus Scheduler, потому что вы не знаете, какие экземпляры Пассажира будут прекращены, только чтобы всегда было не менее 1. – alvin