2013-06-25 4 views
3

Сценарий: «У меня есть 500 различных типов сообщений (поэтому электронные письма отправляются в разные запланированные дни ровно в 7 часов утра). Пользователь подписывается, чтобы получить 1 или более эти типы сообщений каждый день по электронной почте (имейте в виду, это может означать 5000+ писем в день). "Rails: лучший способ расписания сообщений электронной почты

Оглядываясь вокруг, я все еще вижу, как "Whenever" gem подходит как решение, но некоторые говорят, что это может вызвать всплески на сервере. Я также читал некоторые сообщения на delayed_job, но некоторые говорят, что он замерзает, чего я не хочу. Я googled еще & все еще не мог найти ничего близкого к конкретному вопросу.

Что было бы лучшим способом справиться с этим, учитывая мой сценарий & почему?

Заранее спасибо.

ответ

4

Использование:

http://rubygems.org/gems/resque

в сочетании с:

https://rubygems.org/gems/resque_mailer

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

+1

Hey @Hallucynogenyc, спасибо за ваше предложение. Я пробовал это сейчас. Насколько тяжело это будет на моем сервере? Другая моя главная проблема - часть планирования. Я смотрю на «resque-scheduler», но понимаю, мои пользователи будут выбирать дату, когда они хотели бы получать сообщения (deliver_at). Достаточно ли этих 3 драгоценных камней (resque, resque_mailer, & resque_scheduler)? – Jon

+0

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

+0

Кроме того, да, эти 3 драгоценных камня должны быть достаточными. – bluehallu