0

我准备了一个简单的任务来测试 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 从未调用该方法。

我错过了什么吗?

4

1 回答 1

0

很可能您还没有将任务写入 cron。

你做过bundle exec whenever -w吗?

cron 守护进程也可能没有启动。

于 2015-03-29T12:16:16.860 回答