【问题标题】:Multiple spools with Swiftmailer and Symfony2使用 Swiftmailer 和 Symfony2 的多个线轴
【发布时间】:2015-06-05 08:55:33
【问题描述】:

使用 Swiftmailer 发送尽可能高的电子邮件率的最佳方法是什么?

我们拥有一个电子邮件自动化工具,有时单次发送 40.000 封电子邮件。我们使用 spool:send 命令的平均速率约为 50 封电子邮件/分钟。我已经尝试在 cron 上复制相同的命令 5 次并且它有效(即它正在发送约 250 封电子邮件/分钟),但看起来 SMTP 服务器变得头晕目眩,因为一些联系人正在接收包含另一个联系人信息的电子邮件(任何关于可能导致这种情况的想法?)。

所以现在我正在考虑设置 5 个不同的邮件程序,将电子邮件发送到不同的文件夹,并使用 cron 运行 5 个命令,每个命令都用于其中一个邮件程序。它应该工作吗?还有其他推荐的解决方案吗?

【问题讨论】:

    标签: php email symfony cron swiftmailer


    【解决方案1】:

    如果您每分钟发送 250 封电子邮件,那么您需要比 cron 和 Swiftmailer 假脱机更具弹性的东西。这将很难扩展,调试的噩梦,而且不是很不灵活。如果您每分钟发送的电子邮件不超过几封,那么 Swiftmailer 假脱机非常棒,但如果比这更大,那么它就很难扩展,而且调试起来简直就是一场噩梦。

    改为使用PHP ResqueRabbit MQ 之类的作业队列(两者都是开源的)。您可以通过拥有需要发送的电子邮件队列来复制“假脱机”,并且可以添加多个工作人员和队列。您还可以有第二个队列,实际上将作业添加到第一个队列中。

    优点是 Rabbit MQ 带有管理器界面,因此您可以查看正在发送的电子邮件数量、失败的数量等信息。此外,通过添加和删除工作人员更容易扩大和缩小规模例如,您承受着沉重的负担。

    来自 Sensio Labs 的 Kacper 实际上在去年与 Symfony 进行了一次关于 Rabbit MQ 的演讲 - http://www.slideshare.net/cakper/2014-0821-symfony-uk-meetup-scaling-symfony2-apps-with-rabbit-mq

    【讨论】:

      猜你喜欢
      • 2011-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多