安排事件发生在铁路事件发生后

时间:2013-10-05 20:04:38

标签: ruby-on-rails ruby-on-rails-4

我有一个rails 4应用程序,我有客户会下载剪辑,然后有一个评级选项。我想向他们发送一封提醒电子邮件,说他们在下载视频一天后没有评分。我该如何安排?我查看了whenever gem,但我不确定如何在下载事件发生后启动操作,它看起来好像是为连续重复发生的事件而设计的。


另请注意,只有在用户未评级的情况下才会发送邮件。我确信我们可以在用户下载视频24小时后随时发送邮件,但我需要检查用户是否已评级,然后发送。我该怎么做?

1 个答案:

答案 0 :(得分:2)

它必须在24小时之后吗?如果没有,

当用户下载剪辑时,您可以针对用户捕获数据库中的下载时间戳,并通过检查downloaded_at时间戳,让夜间cron作业(使用gem时)向用户发送电子邮件。

config/schedule.rb

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

在你的课堂上(无论你在下面看到什么是伪代码)

class MyModel
  def task_to_run_at_four_thirty_in_the_morning
    if user_downloaded_before_24_hours and user_has_not_rated
      send_email
    end
  end
end