如果用户未在三天内撰写任何新帖子,我的rails应用会发送提醒电子邮件。这被定义为计划的rake任务。
每天安排任务。当然,任务应该只为每个用户触发一次。用户应该在第三天获得它,然后再也不会。在第十天,我可能会发一封完全不同的电子邮件。
我知道在用户表中添加一个名为received_reminder
的列是一个选项。当您触发任务时,您可以将received_reminder
更改为true
并在用户创建新帖子时再次将其清除。多个提醒将意味着每个提醒的新列。例如。 received_reminder_5days
等等 - 这看起来似乎没有干,我怀疑一般可能有更好的方式。
提醒电子邮件方面的最佳做法是什么?
答案 0 :(得分:0)
您甚至不需要额外的字段。您可以设置数组reminder_days = [3,5,10,15]
(例如),然后每天检查一次用户上次发布的日期d
(以天为单位)(可以从数据库中获取)是否为成员reminder_days
。如果是,则发送提醒。如果n+1
是数组n
中d
的索引,则此提醒是reminder_days
提醒。
即使在每日发送提醒电子邮件的过程被混合的情况下也要非常安全,您可以存储已在字段reminder_count
中发送的提醒的数量。每当用户创建新帖子时,此字段都设置为0,并且每当发送提醒时它都会增加。使用此字段,您可以随时查看是否仍需要立即发送提醒(请检查n==reminder_count
)。