私の 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}]")
すべての環境で、コードはチャンピオンのように実行されます。populate プロセスはその役割を果たし、正常に終了します。ただし、問題はロギングにあります。RAILS_ENV が「production」に設定されている場合、cron ブロック内のメッセージはまったくログに記録されません。
Passenger 2.2.9 と Rails 2.3.5 を使用しています。これら 2 つの原因のいずれかが、プロセスのログ記録を妨げていると考えられます。誰がそれが何であるか、そしてそれを本番環境にログインさせる方法を教えてもらえますか?