Как реализовать почтовую систему с Rails, которая отправляет электронные письма в фоновом режиме - PullRequest
1 голос
/ 19 апреля 2010

Я хочу реализовать надежную почтовую систему с Ruby on Rails, которая отправляет электронные письма в фоновом режиме, так как отправка электронной почты иногда занимает около 10 секунд или более, поэтому я не хочу, чтобы пользователь ждал. Некоторые идеи, о которых я подумал:

  1. Запись в таблицу в БД фоновый процесс, который проходит и отправить письмо (беспокойство: потенциальные многие чтение / запись в БД замедляет мой заявка)

  2. Очередь сообщений фоновый процесс / Rake-задача (беспокойство: если сервер падает в очереди почта будет потеряна и может съесть много памяти, если много писем)

Мне было интересно, знаете ли вы хорошее решение, которое обеспечивает баланс между надежностью и производительностью.

Ответы [ 3 ]

3 голосов
/ 19 апреля 2010

Я думаю, что Старлинг и Уорлинг смогут вам помочь =) Смотреть этот Railscast: http://railscasts.com/episodes/128-starling-and-workling

2 голосов
/ 19 апреля 2010

Вы можете реализовать эту функцию или полагаться на внешние службы.

Я использую PostageApp в течение последних 2 месяцев, и я действительно доволен этим. Другое решение - Почтовая марка .

В противном случае, если вы хотите закодировать его, сначала вам нужна система очередей. Для Rails вы можете использовать DelayedJob или Resque . Отправка электронных писем в фоновом режиме, вероятно, является наиболее простым решением, «проблема» связана с ошибками и повторными попытками.

1 голос
/ 19 апреля 2010

Вы смотрели на плагин очереди почты?

http://code.google.com/p/mail-queue/

Документы, похоже, предполагают, что он хранит почту в таблице БД, таким образом избегая по крайней мере # 2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...