在Rails应用程序中发送自动邮件

Mat*_*ahé 3 email cron ruby-on-rails

在我的rails应用程序中,用户可以订阅一些事件.我想在活动开始前24小时向用户发送邮件.

我不确定如何实现它.一个耙子任务?是否有一些宝石或一些最佳实践可供遵循?

谢谢!

编辑:

我想我的cron必须每分钟运行才能让每个事件在24小时内开始.但如果cron停止,或者需要超过一分钟,我就不能跳过一些电子邮件.另一方面,我怎么能确定我没有发送两次相同的电子邮件?

rai*_*inz 5

查看:

http://railscasts.com/episodes/206-action-mailer-in-rails-3

用于发送邮件和

http://railscasts.com/episodes/164-cron-in-ruby-revised

使用何时设置一个cron来打电话给你的邮件

编辑:刚刚看到你的评论.在这种情况下,我会考虑使用resque-scheduler或者与sidekiq等效的东西:

https://github.com/bvandenbos/resque-scheduler

然后你可以做这样的事情:

Resque.enqueue_at(24.hours.from_now, SendFollowUpEmail, :user_id => current_user.id)
Run Code Online (Sandbox Code Playgroud)

sidekiq例子:

FollowUpEmailer.perform_in(24.hours.from_now, current_user.id)
Run Code Online (Sandbox Code Playgroud)