Symfony - 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.
Эти одновременные вызовы вызывают многократную отправку одного и того же электронного письма. Поэтому сегодня один пользователь получит несколько одинаковых писем, даже если у меня есть только одна запись в моей базе данных.
У кого-нибудь уже была эта проблема?
Спасибо!
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