首先,每當和克倫是同義詞。所有無論何時提供一種方法讓你使用Ruby編寫cronjobs(這真是太棒了,我喜歡Whenever)。
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 <[email protected]>", :subject => "You haven't finished your Application!"
end
使用時創建此的cron:
every :day, :at => '8am' do
runner 'Application.notify_stale_applicants'
end