【问题标题】:Rails whenever gem not working每当 gem 不工作时 Rails
【发布时间】:2014-09-06 06:06:24
【问题描述】:

我是 Rails 中的 cron 工作的新手,我想使用 'whenever' gem 来完成它。这是我迄今为止尝试过的。

宝石文件

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

但这并没有做任何事情。我哪里出错了?

【问题讨论】:

  • 你能发一个错误吗?

标签: ruby-on-rails cron whenever


【解决方案1】:

whenever 实际上不会自动为您运行该作业。这只是您在系统上创建相应 cronjob 的一种简单方法。您需要在您的项目上运行以下命令来更新您的 crontab

whenever -i

问候

【讨论】:

  • 如果他们在自述页面上记录了这一点肯定会很好
【解决方案2】:

您的代码中似乎有两个错误:

在您的 scheduler.rb 中,您没有正确调用 mailer。如果Mailer 是一个简单的模型,你写Mailers.new_test 它应该是Mailer.new_test。如果它是邮件程序,即。从类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

如果 mailer 是 action mailer 的实例,那么:

Mailer.rb

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

Schedule.rb

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-20
    • 1970-01-01
    • 2015-08-31
    相关资源
    最近更新 更多