[英]What is the proper way to handle reminder emails?
如果用户三天内未撰写任何新帖子,我的Rails应用程序将发送一封提醒电子邮件。 这被定义为计划的耙任务。
该任务是每天安排的。 当然,该任务仅应为每个用户触发一次。 用户应在第三天获得,然后再也不会。 在第十天,我可能会发送完全不同的电子邮件。
我知道,添加一个名为列received_reminder
用户表是一个选项。 当你火了任务,你会改变received_reminder
到true
和当用户创建一个新的岗位重新清理出来。 多个提醒将意味着每个提醒都有一个新列。 例如, received_reminder_5days
等-DRY认为这似乎不可行,我怀疑通常可能会有更好的方法。
关于提醒电子邮件的最佳做法是什么?
您甚至不需要一个额外的字段。 您可以设置一个数组reminder_days = [3,5,10,15]
(例如),然后每天检查一次用户最近一次发布的年龄d
(以天为单位)(可以从数据库中获取) reminder_days
的成员。 如果是,则发送提醒。 如果n
是dicker_days数组中d
的索引,则此提醒为第n+1
次reminder_days
。
要想真正安全的,即使在情况下,每天发出提醒邮件的过程interrputed,你可以存储已经在现场发送提醒的数量reminder_count
。 每当用户创建新帖子时,此字段都设置为0;每当发送提醒时,该字段就会增加。 使用此字段,您可以随时检查是否仍需要今天发送n==reminder_count
(检查是否n==reminder_count
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.