我希望建立一个功能,当我们的网站上发布某些内容时,可以通过电子邮件通知他们。用户将提供他们的电子邮件地址,选择他们感兴趣的几个主题领域以及他们想要更新的频率(每天或每周)。
构建此类系统的最佳做法是什么?
我想我会从某种具有以下字段的订阅表(postgres)开始:
我可以建立一个每晚都会对这个表运行的工作,这个工作会击中每一行并汇总所有与他们感兴趣的subject_areas相匹配的内容,生成电子邮件并将其投入第三方电子邮件服务,如Mandrill或亚马逊
这看起来是一种好方法还是有更好的方法来解决这个问题?
答案 0 :(得分:1)
表格可能是:
您想要的另一部分是后台作业排队系统(delayed_job,sidekiq或resque),您可以将这些作业放入其中。工作进程将处理作业并在另一个进程中发送它们。
Cron和BG的工作齐头并进
Cron(或调度程序)。
后台工作人员