Php 带Swiftmailer和Symfony2的多个线轴

Php 带Swiftmailer和Symfony2的多个线轴,php,email,symfony,cron,swiftmailer,Php,Email,Symfony,Cron,Swiftmailer,使用Swiftmailer发送最高电子邮件速率的最佳方法是什么 我们拥有一个电子邮件自动化工具,有时一次发送40.000封电子邮件。我们使用spool:send命令的平均速率为~50封电子邮件/分钟。我尝试在cron上复制相同的命令5次,结果成功了(即,它以~250封电子邮件/分钟的速度发送),但SMTP服务器似乎感到头晕目眩,因为一些联系人收到了包含其他联系人信息的电子邮件(知道是什么原因吗?) 所以现在我在考虑设置5个不同的邮件程序,在不同的文件夹中后台处理邮件,并使用cron运行5个命令,

使用Swiftmailer发送最高电子邮件速率的最佳方法是什么

我们拥有一个电子邮件自动化工具,有时一次发送40.000封电子邮件。我们使用spool:send命令的平均速率为~50封电子邮件/分钟。我尝试在cron上复制相同的命令5次,结果成功了(即,它以~250封电子邮件/分钟的速度发送),但SMTP服务器似乎感到头晕目眩,因为一些联系人收到了包含其他联系人信息的电子邮件(知道是什么原因吗?)


所以现在我在考虑设置5个不同的邮件程序,在不同的文件夹中后台处理邮件,并使用cron运行5个命令,每个命令对应一个邮件程序。它应该起作用吗?还有其他推荐的解决方案吗?

如果您每分钟发送250封电子邮件,那么您需要比cron和Swiftmailer spool更具弹性的解决方案。它将很难扩展,调试将是一场噩梦,而且不是很死板。如果您一分钟发送的电子邮件不超过两封,那么Swiftmailer spool非常棒,但是如果发送的电子邮件超过两封,那么它就很难扩展,调试起来也很困难

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

优点是Rabbit MQ带有一个管理器界面,因此您可以查看发送的电子邮件数量、失败的邮件数量等。此外,例如,在负载较重的情况下,通过添加和删除工作人员,可以更轻松地进行上下扩展

去年,Sensio实验室的Kacper与Symfony就Rabbit MQ进行了一次演讲