Простой информационный бюллетень / список рассылки Rails с уведомлением о новых результатах поиска по электронной почте

Мои пользователи могут сохранять предпочтительные поисковые запросы. Теперь мне нужно дать им возможность подписаться на них, чтобы получать уведомления по электронной почте всякий раз, когда доступны новые результаты поиска (например, ответы Yahoo).

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

Теперь все, что мне нужно сделать, это вызвать почтовую программу с запланированного задания, но... я действительно не эксперт в этой области. Таким образом, среди когда бы ни Delayed_job, Sidekiq, Resque Scheduler & co. с каким из них (или их комбинацией) я должен пойти для такого рода задач ( длительный процесс с несколькими рассылками)?

ИЗМЕНИТЬ

Я разработал рабочий пример приложения, доступный на Github: NotiSearch.

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

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


person Darme    schedule 09.11.2012    source источник


Ответы (2)


Я лично работал с Resque и Sidekiq. Основное различие между ними заключается в том, что Sidekiq создает новые потоки для каждого задания.

Resque имеет процесс для каждого задания. В основном это означает, что Resque предполагает сбой, и другие задания не завершатся сбоем в случае сбоя одного процесса. Sidekiq, поскольку он работает с потоками, если один из этих потоков по какой-либо причине блокируется, весь процесс будет заблокирован.

Из ответа в другом QA Resque vs Sidekiq?

Спасение:

Плюсы:

не требует потокобезопасности (работает практически с любым драгоценным камнем); не имеет предпочтения интерпретатора (вы можете использовать любой ruby); множество плагинов. Минусы

запускает процесс на каждого работника (использует больше памяти); не повторяет задания (во всяком случае, из коробки). Сайдэкик:

Плюсы

запускает поток на одного рабочего (использует гораздо меньше памяти); меньше разветвлений (работает быстрее); больше опций из коробки. Минусы

[огромный] требует потокобезопасности вашего кода и всех зависимостей. Если вы запускаете небезопасный для потоков код с потоками, вы напрашиваетесь на неприятности; гораздо меньше плагинов (на данный момент их всего 2); на одних рубинах работает лучше, чем на других (рекомендуются jruby и rubinius, эффективность на МРТ снижается из-за GVL (глобальная блокировка ВМ)).

ИЗМЕНИТЬ

Во всяком случае, чтобы ответить на ваш вопрос. Во всех проектах, в которых мы использовали почтовые программы, мы используем Resque.

person Leo Correa    schedule 11.11.2012
comment
Вы отмечены NotiSearch :-) - person Darme; 21.11.2012
comment
Потрясающий! Спасибо, буду проверять! - person Leo Correa; 21.11.2012

Попробуйте MailyHerald — гем управления рассылкой для рельсов. Это позволит настроить периодическую рассылку пользователям только при соблюдении определенных условий - т.е. доступны новые результаты поиска.

MailyHerald автоматически обрабатывает все рассылки в фоновом режиме (используя Sidekiq) и предоставляет удобный веб-интерфейс для целей управления.

person lfx    schedule 23.11.2015