我对actionmailer比较陌生,但是我设置了忘记密码的电子邮件,并且已经将它们作为延迟作业运行。我想设置动态电子邮件提醒,用户可以选择“提醒我___分钟/小时/天”在活动开始前,并让它发送电子邮件提醒。我不想让它完全开放,它将有一个下拉列表,有以下选项:
实现这一目标的最佳/最有效方法是什么?延迟作业run_at函数能完成这一任务吗?或者我应该为每个下拉选项编写一个传递方法,调用一些可以将邮件发送到
event_start - 60.minutes 或者类似的东西?我的应用程序使用Rails 3.0.11,这与每天的cron任务不同,因为这些任务可以在任何时候运行。此外,如果用户能够编辑事件日期,更改开始日期和结束日期,是否会导致延迟作业的问题?
发布于 2012-08-19 00:12:31
最好将这些信息存储在数据库中,并为每个事件之前的每个时间段设置一个延迟作业。
即。对于活动A,只有6个延迟工作,1天前1天,1小时前,另外30分钟前,
然后延迟的作业可以查看用户需要提醒电子邮件的数据库。
如果当用户选择延迟作业时,您反而设置了延迟作业,那么如果他们改变主意怎么办?当延迟作业为特定用户运行时,它将使删除/更改变得更加困难。
此外,如果许多用户同时需要电子邮件,这可能会导致多个作业同时运行的流量问题。相反,一次给用户列表发送电子邮件会减少问题的发生。
https://stackoverflow.com/questions/12022650
复制相似问题