在我的 rails 应用程序中,用户可以订阅一些事件。我想在事件开始前 24 小时向用户发送邮件。
我不确定如何实现。一个 rake 任务?是否有一些 gem 或一些最佳实践可以遵循?
谢谢!
编辑:
我想我的 cron 必须每分钟运行一次才能获得 24 小时内开始的每个事件。但是如果 cron 停止,或者需要超过一分钟的时间,我不能跳过一些电子邮件。换句话说,我如何确定我没有发送两次相同的电子邮件?
最佳答案
查看:
http://railscasts.com/episodes/206-action-mailer-in-rails-3
用于发送邮件和
http://railscasts.com/episodes/164-cron-in-ruby-revised
用于使用when设置一个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)
关于ruby-on-rails - 在 Rails 应用程序中发送自动电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14967620/