我准备了一个简单的任务来测试 Amazon EC2 上的 CRON 作业:
日程安排.rb
set :output, "/home/a/b/current/log/cron_log.log"
every 5.minutes do
#command "/usr/bin/some_great_command"
#runner "MyModel.some_method"
#rake "some:great:rake:task"
puts "It's working !!!"
runner "User.grab_first_user", :environment => 'development'
runner "User.grab_first_user", :environment => 'production'
end
用户.rb
def self.grab_first_user
user = User.first
puts user.inspect
if user
NotificationMailer.send_info(user.email).deliver
end
end
notification_mailer.rb <-- 这是工作
def send_info(user_email)
@user_email = user_email
mail(:to => 'my@emaill.com', :subject => "[CRON Test]")
end
当我检查crontab
文件时,我看到了这个 CRON 任务,但从未发送过电子邮件 - 从未调用过该方法。当我手动调用该方法时,一切正常(电子邮件也已发送),但 CRON 从未调用该方法。
我错过了什么吗?