Прежде всего, Всякий раз, когда и Крон являются синонимами.Все, что когда-либо делает, - это предоставляет вам возможность писать cronjobs, используя Ruby (это здорово, я люблю Everyever).
Delayed_job здесь не является ответом.Вы определенно хотите использовать cronjobs.Создайте метод в своей модели приложений, который получит приложения, имеющие значение updated_at
< 2.days.ago
, и отправит их по электронной почте своему заявителю.
def notify_stale_applicants
@stale_applications = Application.where('updated_at < ?', 2.days.ago) # or 48.hours.ago
@stale_applications.each do |app|
UserMailer.notify_is_stale(app).deliver
end
end
И вашему UserMailer:
def notify_is_stale(application)
@application = application
mail(:to => application.user.email, :from => "Application Status <status@yourdomain.com>", :subject => "You haven't finished your Application!"
end
Использование при создании этого cron:
every :day, :at => '8am' do
runner 'Application.notify_stale_applicants'
end