2014-09-06 5 views
0

Я новичок в cron jobs в Rails, и я хочу сделать это, используя драгоценность «every when». Это то, что я пробовал до сих пор.Rails всякий раз, когда gem не работает

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

ответ

5

whenever фактически не запускается автоматически, что работа для вас. Это простой способ создать соответствующий cronjob в вашей системе. Вам необходимо выполнить следующую команду в вашем проекте, чтобы обновить кронтаб

whenever -i 

С уважением

+0

уверен, было бы неплохо, если бы это было зафиксировано на странице readme – unclesol

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 

И i е почтовая программа экземпляр действия почтовик, то:

Mailer.rb

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

Schedule.rb

every 1.minutes do 
    runner 'Mailer.new_test.deliver' 
end 
Смежные вопросы