まず、Whenever と Cron は同義語です。Always が行うことは、Ruby を使用して cronjobs を作成する方法を提供することだけです (これは素晴らしいことです。私はいつでも大好きです)。
Delayed_job はここでの答えではありません。あなたは間違いなくcronjobsを使いたいです。Application モデルにメソッドを作成して、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
when を使用してこの cron を作成します。
every :day, :at => '8am' do
runner 'Application.notify_stale_applicants'
end