我准备了一个简单的任务来测试Amazon EC2上的CRON作业:
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
def self.grab_first_user
user = User.first
puts user.inspect
if user
NotificationMailer.send_info(user.email).deliver
end
end
def send_info(user_email)
@user_email = user_email
mail(:to => 'my@emaill.com', :subject => "[CRON Test]")
end
当我检查crontab
文件时,我看到了这个CRON任务,但是从未发送过电子邮件 - 从不调用该方法。
当我手动调用该方法时,一切正常(也发送电子邮件),但CRON永远不会调用该方法。
我错过了什么吗?
答案 0 :(得分:0)
很可能你没有把你的任务写入cron。
你做过bundle exec whenever -w
吗?
也可能没有启动cron守护程序。