ruby-on-rails - 在不重新发明排队系统的情况下实现摘要电子邮件的最优雅方法是什么?

标签 ruby-on-rails email queue delayed-job

我有我的交易电子邮件系统设置,默认情况下人们会在事件发生时收到电子邮件:

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/

相关文章:

sql - 使用 Rails 抽象日期减法 SQL 查询

mysql - 有没有什么方法可以将新的 Wordpress 站点与 RoR Web 应用程序连接起来,并从 Wordpress 站点管理其旧数据库,而无需进行数据迁移?

java - 在后台发送批量电子邮件

database - Phplist 数据库错误 1146

javascript - 使用 Phonegap 发送电子邮件

go - Go中的结构队列

ruby-on-rails - has_and_belongs_to_many 按 id 精确匹配

ruby-on-rails - 如何猴子补丁的代码在Rails中自动加载?

python - 在 Python 中实现一种特殊类型的多处理队列

iphone - iPhone中的下载队列