我有一个rails 4应用程序,我有客户会下载剪辑,然后有一个评级选项。我想向他们发送一封提醒电子邮件,说他们在下载视频一天后没有评分。我该如何安排?我查看了whenever gem,但我不确定如何在下载事件发生后启动操作,它看起来好像是为连续重复发生的事件而设计的。
另请注意,只有在用户未评级的情况下才会发送邮件。我确信我们可以在用户下载视频24小时后随时发送邮件,但我需要检查用户是否已评级,然后发送。我该怎么做?
答案 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