Пакетная рассылка установки таблицы mysql? - PullRequest
1 голос
/ 27 января 2012

Я придумал схему для простого пакетного электронного письма, которое я делаю. Электронная почта будет отправлять X сообщений по электронной почте каждые 5 минут, запустив php-скрипт cron job'd. Проблема в том, что я не думаю, что это лучший способ сделать это, и искал альтернативный, лучший способ; или валидация;).

(упрощенная) схема будет выглядеть так:

 EmailList  |  JobQue  |   Jobs
------------|----------|----------
   email    |   jobid  |    id
            |   email  | esubject
                       |  ebody

Идея состоит в том, что при создании нового задания оно добавляется в таблицу Jobs, и каждое электронное письмо, которое необходимо отправить, будет добавляться в таблицу JobQue.
Затем php-скрипт cron'd, фактически отправляющий электронные письма, просто перебирает следующее число элементов в таблице JobQue, отправляет и удаляет их.

Это хороший способ сделать это? Он прогнется при умеренной нагрузке? (1000-5000 писем, 1-5 заданий в день)? Конечно, будет, если будет добавлено больше писем, чем отправлено, но будут ли другие проблемы (например, попытка добавить 1000 записей в таблицу за один раз, даже если я вставляю их все одним запросом mysql)?

Спасибо
Max

Ответы [ 2 ]

0 голосов
/ 27 января 2012

Как минимум, вы можете рассмотреть более короткое время, чем 5 минут. Если вы ограничите X до 30 (ключевой номер, чтобы избежать включения в черный список), вашему сценарию потребуется 16 часов 55 минут, чтобы выполнить 5000 электронных писем.

0 голосов
/ 27 января 2012

Я думаю, что это очень эффективный способ сделать это. Единственная проблема может быть, если вы хотите отправить как тысячи писем одновременно. Это может привести к таймауту в php. Добавление тысяч записей в mysql одним запросом - это неплохо, это лучший способ, imo. Но я должен сказать, что копия зависит от самого запроса. Если он слишком длинный (я имею в виду слишком длинную строку), то вы можете потерять соединение с сервером. Но я не думаю, что у вас возникнут какие-либо проблемы с этой схемой.

...