使用Ruby on Rails安排发送电子邮件任务的最佳方法是什么?

Fla*_*kou 10 scheduling ruby-on-rails scheduled-tasks

我想安排一项日常任务:每天早上7点,我都希望发送一封电子邮件(无需人工干预).

我正在研究RoR框架,我想知道最好的方法是什么?

我听说过BackgrounDRB,OpenWFEru调度程序或基于Cron的东西,但我是新手,不明白哪一个是为我的需要而制作的.

eri*_*rik 13

另一种选择是创建由cron作业运行的rake任务.为此,请创建一个文件some_file.rake并将其放在您的lib/tasks文件夹中.您的文件可能如下所示:

Rails 2.x:

task :send_daily_mail, :needs => :environment do
    Model.send_daily_mail
end
Run Code Online (Sandbox Code Playgroud)

Rails 3.x:

task :send_daily_mail => :environment do
    Model.send_daily_mail
end
Run Code Online (Sandbox Code Playgroud)

然后使用cron随意执行它:

cd /path/to/app && /usr/bin/rake send_daily_mail
Run Code Online (Sandbox Code Playgroud)

请注意,RAILS_ENV=production如果您的应用默认处于开发模式,则可能需要放入crontab.


Mik*_*use 7

对此博客文章中讨论的rufus-scheduler gem 印象深刻(并计划尝试)

他描述了这样的事情:

scheduler = Rufus::Scheduler.start_new  

scheduler.every("1m") do  
   DailyDigest.send_digest!  
end 
Run Code Online (Sandbox Code Playgroud)

..这看起来很简单.我想知道添加基于HTML的配置有多容易吗?