У меня есть cron, который генерирует всю почтовую информацию и помещает в таблицу базы данных, используя $mail_queue->put(.....)
с возможностью удаления электронных писем после их отправки.
Вот где мне нужна небольшая помощь: как лучше всего отправлять электронные письма после того, как у меня есть вышеуказанная информация? Запуск $mail_queue->sendMailsInQueue()
сразу, используя другие задания (или) cron или что-то еще?
Ограничение сервера составляет 100 сообщений в минуту. В настоящее время последний csv diff для Mail_Queue
не применяется (в настоящее время работает с поддержкой), поэтому я не могу использовать опцию «delay».
У меня возникла идея использовать параметр $seconds_to_send
, но он рассчитан на основе поля create_time, что не очень помогает, но это также вариант.
Любые идеи и предложения будут действительно оценены.
Лично я бы пошел на cron, потому что это дает меньше возможностей для неудачи. Скажите, что ваш почтовый сервер перестает отвечать или по какой-то другой причине становится недоступным. Или что, если вся ваша сеть отключается в течение нескольких часов, но серверы все еще генерируют электронные письма. Я говорю, использую очередь.
Что касается задержки, просто запустите службу / cronjob каждые шестьдесят секунд, поп-100 писем и отправьте их, затем закройте. Вы можете получить очередь писем, которые будут отправлены, но это произойдет независимо от того, какую систему вы выберете. Так или иначе, очередь будет опустошаться в нерабочие часы.
используйте два сценария. один для заполнения вашей таблицы mail_queue электронными письмами, которые вам нужно отправить, и вторым скриптом для отправки этих писем в кусках 90 писем в пути. установите второй скрипт каждые две минуты.
вы также можете просто обновить свой хостинг-план 😉
почему вы не зацикливаете 100 писем и спать в течение 60 секунд. это стоит вам не servertime, единственный недостаток вашего скрипта работает немного дольше.