Symfony - Swiftmailer spool多次发送电子邮件

时间:2017-10-23 09:57:40

标签: php symfony cron swiftmailer spool

我有一个CRON Job,可以创建要在数据库中发送的电子邮件。 它创建了大约3000个独特的电子邮件发送。

然后我有一个像这样配置的CRON作业:

* * * * * php bin/console swiftmailer:spool:send --message-limit=200 --env=prod --no-debug

因此,第二个CRON作业尝试每分钟发送200封电子邮件。 我看的时候:

ps aux | grep php

它显示了多个同步进程swiftmailer:spool:send。

这些同时呼叫会导致多次发送同一封电子邮件。 所以今天,即使我的数据库中只有一个条目,一个用户也会收到多个相同的电子邮件。

有人已经有这个问题了吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您需要使用多个swiftmailer:spool:send进程来加快发送电子邮件的速度,那么我认为您根本不应该使用spool。 但是您可以宁愿使用像RabbitMQ这样的单独的消息队列系统,该系统处理的情况是不会重复使用同一条消息。在此处阅读更多信息:

https://symfony.com/doc/current/messenger.html

https://symfony.com/doc/current/the-fast-track/en/18-async.html#going-async-for-real