我有我的交易电子邮件系统设置,默认情况下人们会在事件发生时收到电子邮件:
class Comment
after_create :email_original_poster
def email_original_poster
UserMailer.delay.notify_author_of_comment self
end
end
然而,我的一大群用户更喜欢每日或每周的摘要,而不是立即收到电子邮件。
实现这一点的最干净最优雅的方法是什么?
我已经有
delayed_job
正在运行,但这真的不像 delayed_job
工作,因为我正在排队需要采取行动的数据,而不是需要执行的行动。...无需重新发明排队系统
我知道明显的解决方案是
queued_emails
的表我当然可以做到。我问这个问题的原因是这样做是重新发明一个排队系统。不仅有很多排队系统,而且正如 Percona 这篇措辞良好的帖子所指出的那样,最好不要推出自己的:http://www.engineyard.com/blog/2011/5-subtle-ways-youre-using-mysql-as-a-queue-and-why-itll-bite-you/
您是否实现了摘要电子邮件,您是否使用了
delayed_job
& 你学到了什么?
最佳答案
摘要看起来更适合作为 cron 工作来完成。您仍然必须控制“您发送给谁”,以处理崩溃和错误,但我们的想法是运行,例如,每天,一个自定义的 rake 任务来制作您的邮件消息,包括在一个摘要格式,它们发送或排队发送。
关于ruby-on-rails - 在不重新发明排队系统的情况下实现摘要电子邮件的最优雅方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7589059/