在我的rails应用程序中,用户可以订阅某些事件。我想在活动开始前24小时向用户发送邮件。
我不确定如何实现这一点。一个耙子任务?是否有一些宝石或一些最佳实践可以遵循?
谢谢!
编辑:
我想我的cron必须每分钟运行才能让每个事件在24小时内开始。但如果cron停止,或者需要超过一分钟,我就不能跳过一些电子邮件。另一方面,我怎么能确定我没有两次发送同一封电子邮件?
答案 0 :(得分: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)
sidekiq例子:
FollowUpEmailer.perform_in(24.hours.from_now, current_user.id)
答案 1 :(得分:0)
https://github.com/mperham/sidekiq/pull/257
这将帮助您在预定时间内解决自动邮件系统!