我想安排一个每天的任务:每天早上7点,我想要发送一封电子邮件(没有人工干预)。
我正在研究RoR框架,我想知道做这件事的最好方法是什么?
我听说过BackgrounDRB,OpenWFEru调度器或基于Cron的东西,但我是一个新手,不知道哪一个是我需要的。
发布于 2009-02-16 18:37:48
另一种选择是创建一个由cron作业运行的rake任务。为此,请创建一个文件some_file.rake并将其放入lib/tasks文件夹中。您的文件可能如下所示:
Rails 2.x:
task :send_daily_mail, :needs => :environment do
Model.send_daily_mail
endRails 3.x:
task :send_daily_mail => :environment do
Model.send_daily_mail
end然后使用cron按您喜欢的频率执行它:
cd /path/to/app && /usr/bin/rake send_daily_mail注如果你的应用默认处于开发模式,你可能需要把RAILS_ENV=production放在你的crontab中。
发布于 2009-02-16 16:01:41
in this blog post讨论的rufus-scheduler gem给我留下了深刻的印象(并打算尝试一下)
他是这样描述的:
scheduler = Rufus::Scheduler.start_new
scheduler.every("1m") do
DailyDigest.send_digest!
end ..which看起来很简单。我想知道添加基于HTML的配置有多容易?
发布于 2009-02-16 23:17:15
我使用的是BackgroundRB,它工作得很完美。我有几封正在发送的电子邮件,由BackgroundRB生成。我还有其他的任务。因为它启用了计划任务和异步任务(比正常客户端/服务器响应周期更长的任务)。
我使用它,我对它非常满意。
https://stackoverflow.com/questions/553648
复制相似问题