Railsコンソールでこれを行っています:
job = scheduler.at 1.minute.from_now do Service.log.debug 'scheduler works' end
job.schedule_info
=> Wed, 07 Aug 2013 16:14:46 UTC 00:00
scheduler
は他のファイルで定義されています:
require 'rubygems'
require 'rufus/scheduler'
def scheduler
@scheduler ||= Rufus::Scheduler.start_new
end
そして、コンソールで実行すると:
Service.log.debug 'scheduler works'
サービスログファイルが書き込まれます。
問題
scheduler.at 1.minute.from_now do Service.log.debug 'scheduler works' end
1 分後にログに書き込みません。私は何が欠けていますか?どうすればこれをデバッグできますか?
実際の問題
シャットダウンしているように見える EC2 のサーバーがあり、スケジュールされたタスクが実行されていません。
私の開発環境では、タスクを 1 分で実行してテストしたところ、動作しました。これはコンソールではなくサーバーにあります。コンソールでは、前述のように失敗しています。
開発環境
ruby 1.9.3p327 (2012-11-10 リビジョン 37606) [x86_64-darwin12.0.0]
シン 1.5.0
リモート環境
ruby 1.9.3p429 (2013-05-15 リビジョン 40747) [x86_64-linux]
Apache2 2.2.22
旅客 4.0.5
宝石
レール3.2.8
rufus-スケジューラー 2.0.18