Pet*_*xey 6 email queue ruby-on-rails delayed-job
我有我的交易电子邮件系统设置,默认情况下,当事件发生时,人们会收到电子邮件:
class Comment
after_create :email_original_poster
def email_original_poster
UserMailer.delay.notify_author_of_comment self
end
end
Run Code Online (Sandbox Code Playgroud)
然而,不是收到电子邮件,我的一大部分用户更喜欢每日或每周摘要.
实现这个最干净最优雅的方法是什么?
我已经delayed_job
运行但是这并不像是一项delayed_job
工作,因为我正在排队需要执行的数据,而不是需要执行的操作.
......没有重新发明排队系统
我知道明显的解决方案是表格queued_emails
,当然我可以做到这一点.我问这个问题的原因是这样做是重新发明排队系统.不仅有很多排队系统,但正如Percona这篇措辞谨慎的帖子所指出的那样,最好不要推销自己的排队系统:
您是否实施了摘要电子邮件,是否使用了delayed_job
以及您学到了什么?
小智 1
显然您不必创建自己的排队系统。我没有使用delayed_job,但我将resque与一个名为resque_mailer的漂亮小gem 结合使用,它应该完全满足您的需求。resque_mailer 的优点在于,一旦设置完毕,您不必更改通常发送邮件的方式:MyMailer.some_mailing({vars}).deliver
如果由于某种原因您不想使用队列发送邮件(立即发送),您可以只需要添加!交付后它就会做到这一点。
研究一下resque(使用redis)和resque_mailer,我认为它会做你想要的。
归档时间: |
|
查看次数: |
1805 次 |
最近记录: |