【问题标题】:Sending dynamic email reminders in Ruby on Rails?在 Ruby on Rails 中发送动态电子邮件提醒?
【发布时间】:2012-08-14 21:32:03
【问题描述】:

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

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

实现此目的最好/最有效的方法是什么?延迟的作业 run_at 函数可以完成此操作吗,还是我应该为每个下拉选项编写一个传递方法,调用一些内容来在

处传递邮件
event_start - 60.minutes 

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

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 email delayed-job


    【解决方案1】:

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

    即。对于事件 A,只有 6 个延迟作业,一个在事件前 1 天,另一个在 1 小时前,另一个在 30 分钟前,...

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-02-12
      • 2013-06-08
      • 2018-12-09
      • 2015-06-15
      • 2012-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-04
      相关资源
      最近更新 更多