2014-09-06 83 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