2015-11-06 4 views
1

Я хотел бы создать новую функцию в своем приложении для опроса, которая позволяет пользователям устанавливать ежедневные, еженедельные и т. Д. Уведомления о статистике их опросов. Также я хочу, чтобы пользователи удаляли эти уведомления, если они им больше не нужны, или их опрос заканчивается.Как создать повторяющиеся уведомления в Rails из интерфейса администратора?

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

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

Любые идеи, как это сделать самым элегантным и эффективным способом?

ответ

2

Я думаю, что вы найдете whenever камень полезной

вот пример синтаксиса для него:

every 3.hours do 
    runner "MyModel.some_process" 
    rake "my:rake:task" 
    command "/usr/bin/my_great_command" 
end 

every 1.day, :at => '4:30 am' do 
    runner "MyModel.task_to_run_at_four_thirty_in_the_morning" 
end 
+0

Hi Maciek! Спасибо за ввод. Я знаю каждый раз, когда каждый камень, и я использую его регулярно, например, для создания/обновления sitemaps. Но я не уверен, как активировать/деактивировать повторяющуюся задачу в нем из веб-интерфейса. –

+0

hmm ... возможно, вы могли бы написать cron, который проверяет, какие пользователи нуждаются в уведомлениях и отправляют их соответственно? Это может занять некоторое время, если у вас много пользователей, поэтому я бы использовал для этого [sidekiq] [https://github.com/mperham/sidekiq] –