Как дешево (читать бесплатно) отправлять уведомления по электронной почте на Heroku? - PullRequest
3 голосов
/ 15 марта 2012

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

Я использую Postmark вместе с ActionMailer для отправки электронных писем, поэтому вКонтроллер моих комментариев всякий раз, когда создается новый комментарий, это действие вызывает Mailer для доставки электронной почты.Дело в том, что это не так быстро, как я ожидал, и задерживает ответ - когда пользователь публикует комментарий, он не сразу получает реакцию через ajax, а ждет, пока контроллер завершит отправку почты.

Естественно, я решил попробовать фоновую обработку с delayed_job.Ну, это работает, и теперь я получаю немедленный ответ, когда я публикую комментарий.Тем не менее, я только что понял, что для запуска delayed_job на Heroku мне нужно вручную запустить рабочий динамо, и как только он заработает, он будет работать до тех пор, пока я не уменьшу его.И это, кажется, стоит денег.

Я хочу попробовать это, потратив как можно меньше денег, и искал вокруг, чтобы посмотреть, есть ли какие-либо решения.Я нашел решение под названием HireFire, которое автоматически запускает ваш dyno, когда есть работа, и выключает его, когда работы нет (https://github.com/meskyanichi/hirefire), но это решение платит за услугу, которая хотя и дешевле, чем ничего, но все жепревосходит мои первоначальные цели.

Я даже думаю о том, чтобы просто обойтись без delayed_job и пожертвовать скоростью отклика, по крайней мере, до тех пор, пока не увижу какую-то тягу с сайтом.

Так что мне интересно, есть лиЛюбое решение (или взлом), которое позволяет мне отправлять уведомления по электронной почте на Heroku бесплатно? Или большинство людей, которые создают сайты, которые делают что-то подобное, просто платят за дополнительный рабочий dyno?

Или это будет нормально, еслипросто идти без фоновой обработки действий ActionMailer, по крайней мере, в начале? (Я не уверен, какая нагрузка это имеет на весь сервер, например, если десять человек что-то комментируют одновременно, если это повлияет на производительность для остальных пользователей сайта)

Ответы [ 3 ]

3 голосов
/ 16 марта 2012

IronWorker должен соответствовать вашим потребностям здесь.(Обратите внимание, что я работаю на Iron.io.) Нет необходимости управлять серверами.Просто создайте рабочих, загрузите их в IronWorker, а затем сразу же запустите или запланируйте их на потом - у IronWorker есть несколько гибких опций планирования.Как уже упоминалось в другом посте, большое количество часов приходит в месяц бесплатно.

3 голосов
/ 15 марта 2012

Hirefire должен быть лучшим для вас.Я думаю, что вы можете использовать его бесплатно, это с открытым исходным кодом, но не знаю требований для его запуска.

Другим решением может быть добавление на Iron Iron.Они дают вам 25 часов в месяц рабочего времени бесплатно.

0 голосов
/ 16 мая 2012

Если вам не нужно в режиме реального времени, т.е. вы довольны 10-минутной задержкой, вы можете просто использовать планировщик Heroku.Каждые 10 минут запускайте задание, которое перебивает текущую очередь заданий, а затем умирает до следующей 10-минутной итерации.

Не бесплатно, но и не так много, как очередность рабочего.

...