我创建了一个作业队列模块,用于处理作业并构建“社交网络”类型的电子邮件。2个过程包括:
构建自定义电子邮件(视图),例如
User A and User B have commented on your post
或User B and User C also likes User C's post
. 每个收件人都会收到不同的电子邮件。我最初创建了一个新Swiftmailer
实例并添加了消息内容、主题和收件人。然后我将这些实例添加到数据库中。稍后会运行一个 cron 作业来获取和发送这些电子邮件。
在进行基准测试时,我意识到它平均每秒发送 2 封电子邮件。所以我尝试将Swift_Message
实例存储在数据库中。虽然没有运气,仍然需要很长时间。
目前,代码
- 创建一个新的
Swift_SmtpTransport
. - 创建一个新
Swift_Mailer
实例。- 循环通过
Swift_Message
从数据库检索到的消息 - 发送每封电子邮件。
- 循环通过
但它仍然平均每秒大约 2 封电子邮件。有什么方法可以改进流程以加快交付速度?我使用 Amazon SES 作为我的 SMTP 传输,我知道它每秒至少可以处理 5 封电子邮件。
所以这可能是我做错了。任何想法表示赞赏。
编辑
请记住,每个收件人的消息都不同。我可以试试这个Swift_Decorator
插件,但这意味着我必须改变视图的生成方式。我只是在寻找其他替代方案来加快这一进程。