4

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

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

谢谢!

编辑:

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

4

2 回答 2

6

查看:

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)
于 2013-02-19T21:22:30.557 回答
0

https://github.com/mperham/sidekiq/pull/257

这将帮助您在预定时间内解决自动邮寄系统!

于 2013-05-28T07:47:31.107 回答