Ну, в любое время, когда я отправляю электронную почту через PHP, я делаю это через оболочку mailQ, которая не отправляет электронную почту мгновенно, а помещает ее в очередь для отправки (и отправляет через собственный автономный скрипт).Если вы выбрали такой же подход, вы можете просто добавить электронные письма в очередь (таблица SQL с сообщениями, получателями и т. Д. И флажком, указывающим, было ли оно отправлено).
Тогда вы все равно можетезапускайте скрипт каждую минуту, а затем создайте скрипт электронной почты (который ищет почтовую таблицу, чтобы узнать, есть ли ожидающие сообщения, которые нужно отправить), запустите его как отдельное задание cron - таким образом, рабочая нагрузка полностью разделяется на заданиядолжен работать параллельно.
И я могу со 100% уверенностью утверждать, что, пока ваш код надежен, выполнение задания каждую минуту никогда не должно быть проблемой.Я использовал этот подход в своей CMS в течение многих лет, чтобы сбалансировать нагрузку между обновлениями, которые не являются высокоприоритетными и будут только замедлять работу браузера для клиента.
У меня никогда не было производительности, нагрузки или задержкиС тех пор возникают проблемы с использованием такого подхода, и все продолжает быстро реагировать.
Я согласен с AJ, хотя важно ограничить количество сообщений, отправляемых за один пакет.Использование системы очередей идеально для этого, так как она отправляет только ожидающие X за один раз, и они все еще будут там в очереди.