Rails:你如何告诉cron执行控制器方法?

时间:2018-01-04 12:08:25

标签: ruby-on-rails ruby model-view-controller cron rake

因此,文章控制器中的一堆邮件方法将不同类型的文章与不同的用户混合在一起。从Rails中的某个地方调用时,一切正常。但他们需要在一周内由cron执行。什么代替rake文件中的“xxxx”来告诉它在文章控制器中执行“10_am_action”方法?

articles_controller.rb:

def 10_am_action
  [sends the right e-mails to the right users]
end

的Cron:

0 10 * * 0  cd /data/website/current && RAILS_ENV=production bundle exec rake emails:10_am

emails.rake:

namespace :briefings do

desc "10 am e-mails"
task :10_am => :environment do
    xxxxxx
end

end

1 个答案:

答案 0 :(得分:3)

您不能因为控制器绑定到HTTP。

但是,您可以重构代码并将电子邮件发送逻辑解压缩到邮件程序,并从控制器和佣金任务中调用该邮件程序。