2014-09-06 55 views
0

我是Rails中的cron作业新手,我想用'when'gem来做。这是我到目前为止所尝试的。Rails每当宝石不工作

的Gemfile

gem 'whenever' 

Mailer.rb

def new_test 
    Rails.logger.debug '===========whenever is working================' 
end 

Schedule.rb

every 1.minutes do 
    runner 'Mailers.new_test' 
end 

但是,这并不做任何事情。我哪里出错了?

+0

您可以发布一个错误? – SSR 2014-09-06 06:18:52

回答

5

whenever其实没有自动运行的工作适合你。这只是一个简单的方法让你在你的系统上创建相应的cronjob。您需要在您的项目运行下面的命令来更新你的crontab

whenever -i 

问候

+0

肯定会很好,如果他们在自述页面上有记录 – unclesol 2016-01-11 15:59:12

0

似乎有两个错误代码:

在scheduler.rb你是不是正确调用邮件

。你写Mailers.new_test它应该是Mailer.new_test如果Mailer是一个简单的模型。如果它是邮件即。覆盖类ActionMailer那么它应该是Mailer.new_test.deliver

Mailer情况下是简单的模型,然后把文件应该是:

Mailer.rb

new_test应该是类方法像Mailer.new_test不是一个实例方法来调用

def self.new_test # Should be a class method not instance 
    Rails.logger.debug '===========whenever is working================' 
end 

Schedule.rb

every 1.minutes do 
    runner 'Mailer.new_test' 
end 

而我˚F邮件是行动邮件则实例:

Mailer.rb

def new_test 
    Rails.logger.debug '===========whenever is working================' 
end 

Schedule.rb

every 1.minutes do 
    runner 'Mailer.new_test.deliver' 
end