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

Другие вопросы по тегам