使用cron任务向网络上的所有用户发送每日更新电子邮件的最佳方法究竟是什么?电子邮件将由来自多个模型的不同信息组成.
我想从请求模型和用户模型中做一些类似“1个新朋友请求:名字…”的事情和“来自你的朋友的3个即将发生的事件:由名称托管的事件名称……”来自事件和用户模型.
我意识到这是一项常见的任务,但我没有看到太多关于它的信息,所以任何关于做这样的事情的一般提示都将不胜感激!
旁注:如果重要的话,我将使用Heroku每日cron插件来实现这一点(尽管我认为不应该).
解决方法
我通常只写一个rake任务并将其添加到CRON.
rake任务看起来像这样:
namespace :notifications do desc "Sends notifications" task :send => :environment do MyModel.all_users_to_notify.each do |u| MyMailer.notification(u).deliver end end end
你的crontab应该是这样的:
RAILS_ENV=production HOME=/path/to/your/rails/app PATH=/path/to/ruby/binaries 30 17 * * * rake notifications:send