Мое приложение rails запускает процесс с помощью rufus-scheduler в инициализаторе. Вот урезанная версия кода инициализатора:
# config.logger isn't available here, so we have to grab it from the Rails object
logger = RAILS_DEFAULT_LOGGER
logger.warn(Time.now.to_s + ": Starting Rufus Scheduler")
# run every Wednesday at 10 AM
cron_string = '0 10 * * 3'
scheduler = Rufus::Scheduler.start_new
scheduler.cron cron_string do
logger.warn(Time.now.to_s + ": Starting Background Process")
(do work here)
logger.warn(Time.now.to_s + ": Finished Background Process")
end
logger.warn(Time.now.to_s + ": Rufus Scheduler set Background Process to run with the following cron string: [#{cron_string}]")
Во всех средах код работает как чемпион. Процесс заселения делает свое дело и завершается изящно. Проблема, однако, заключается в регистрации. Когда RAILS_ENV установлен в «production», сообщения внутри блока cron не регистрируются вообще.
Я использую Passenger 2.2.9 и Rails 2.3.5. Я полагаю, что одна из этих двух вещей - предотвращение регистрации процесса. Может кто-нибудь сказать мне, что это и как заставить его войти в производство?