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

问题描述 投票:0回答:1

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

articles_controller.rb:

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

克龙:

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
ruby-on-rails ruby model-view-controller cron rake
1个回答
3
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.