微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何组织数据以向用户发送许多电子邮件?

如何解决如何组织数据以向用户发送许多电子邮件?

| 这更多是为了寻求建议/最佳实践。我们的网站拥有许多用户(> 200,000),我们需要向所有用户发送有关他们所在地区发生的事件的电子邮件。交错增加工作的最佳方法是什么? 注意事项: 我们将所有内容存储在MysqL数据库中 电子邮件在基于队列的系统上发送,独立的工作人员抓取任务并将其发送出去。 我们收集可用于分组的用户名,加入日期 发送电子邮件不是问题,问题在于添加作业。如果我们突然尝试一次添加这么多工作,我担心会影响性能。     

解决方法

        我希望您的要求就像向新闻组和订户发送新闻信一样。 您已经有小组并且可以实施吗? 这将有助于过滤并避免过滤整个200000用户。 发送基于组的电子邮件将减少数据库负载,我希望!!。 处于db处于活动状态和非活动状态的用户。 解决cron工作是解决方案。但间隔是根据作业可能影响您的服务器的负载而定。 因此,如果数据库设计和作业间隔性能良好,则更好     ,        我假设您的队列是数据库中的一个表,并且您担心的是向表中添加数千条记录会对其造成重大影响,因为每次都会重新建立索引? 如果在单个进程(例如,单个http请求或单个cronjob脚本)中添加许多条目,则可以在插入之前启动事务,并在完成后提交。对于事务中的所有插入,索引将仅更新一次。 如果这是更普遍的问题,则可能要考虑使用消息队列而不是数据库表。 还是我完全离开?     ,        每5分钟设置一次Cron作业。检查是否有要发送的电子邮件。如果存在,并且尚未将其设置为“进行中”,请选择第一个并将其设置为进行中。选择ID <
n
的第一批用户并将其发送给他们。跟踪该最后一个ID,并重复直到到达用户列表的末尾。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。