在Ruby on Rails中发送动态电子邮件提醒?

我对动作管理员比较陌生,但是我已经设置了忘记密码的电子邮件,并让它们作为延迟工作运行。 我想设置动态电子邮件提醒,用户可以在活动开始前选择“提醒我_ __分钟/小时/天”这样的选项,并让它发送电子邮件提醒。 我不想让它完全开放,并有一个下拉列表,其中包含以下选项:

  • 在活动时提醒我
  • 在活动开始前5/15/30分钟提醒我
  • 在活动开始前1小时提醒我
  • 在活动开始前一天提醒我

实现这一目标的最佳/最有效方法是什么? 延迟的作业run_atfunction是否可以完成此操作,或者我是否应该为每个下拉选项编写一个交付方法,调用一些内容来表示发送邮件

event_start - 60.minutes 

或类似的东西? 我的应用程序使用Rails 3.0.11,这与每日cron任务不同,因为它们可以随时运行。 此外,如果用户能够编辑更改开始日期和结束日期的事件日期,是否会导致延迟作业出现任何问题?

可能最好将此信息存储在数据库中,并在每个事件之前的每个时间段设置一个延迟作业。

即。 对于活动A,只有6个延迟工作,一个是活动前一天,另一个是前一个小时,另一个是30分钟,…

然后,延迟的作业可以查看用户需要提醒电子邮件的数据库。

如果您在用户选择延迟作业时设置了延迟作业,那么如果他们改变主意怎么办? 当特定用户的延迟作业运行时,它将更难删除/更改。

此外,如果许多用户同时想要电子邮件,则可能会导致多个作业尝试同时运行时出现流量问题。 相反,单个作业一次一个地通过电子邮件发送用户列表将导致更少的问题。