Как я могу разместить свои процессы/программы электронной почты за пределами моего внешнего сервера (Rails 3.2/devise/sendgrid/heroku)

Чтобы освободить мой интерфейсный сервер, я хотел бы разместить все запросы, отправленные в sendgrid (аутентификацию, подтверждение, сброс пароля и транзакционную электронную почту, такую ​​как электронная почта «нет посещения в течение длительного времени» и ежедневная электронная почта, которую мы отправляем.

Это необходимо, так как мы планируем сохранить всю память и мощность основного сервера для самого веб-приложения, и это включает в себя максимально быстрое отображение страниц. Поэтому мы хотели бы, чтобы все подпрограммы электронной почты не потребляли часть памяти/мощности нашего основного сервера веб-приложений.

Теперь все на одном сервере (на dyno на Heroku) (плюс база данных).

Поскольку мы планируем иметь много трафика на внешнем интерфейсе, я думаю, было бы целесообразно создать динамометр, зарезервированный только для процесса электронной почты (назовем его «почтовый сервер/дино».

Но он должен общаться с приложением и базой данных

  • например, если пользователь регистрируется, основной dyno с веб-приложением должен отправить сообщение на «сервер электронной почты»

  • другой пример: мне нужно будет получить доступ к той же базе данных, чтобы использовать cron, чтобы узнать, нужно ли мне отправлять электронное письмо, если пользователь подписался 8 недель назад и никогда не входил на веб-сайт.

Итак, чтобы быть кратким,

Как я могу настроить другой сервер, который будет работать только с электронной почтой

Стоит ли ставить все те же гемы и окружение

Как «сервер электронной почты» может общаться с основным веб-приложением и базой данных?

Любой совет или ресурс в Интернете, который объясняет, как это сделать?


person Mathieu    schedule 13.05.2013    source источник


Ответы (1)


Я делаю это с помощью собственных приложений Resque и Resque Mailer. Resque — это очередь, основанная на Redis, которую вы можете запустить с помощью работника heroku. Вот некоторые ресурсы, которые могут помочь вам начать работу с этим:

Resque Mailer — это плагин, который позволяет создавать фоновые сообщения электронной почты из ActionMailer с помощью Resque. Вы можете найти более подробную информацию в их github README:

https://github.com/zapnap/resque_mailer

person Swift    schedule 13.05.2013