当用户没有查看网站时,发送电子邮件通知的正确方法是什么

时间:2014-08-13 22:46:19

标签: php email notifications cron

我目前正在处理社交媒体网站的电子邮件通知,我想在用户未查看网站时向用户发送电子邮件通知(至少在一段时间内,30分钟,1小时等)

我正在考虑使用cron作业发送这些电子邮件通知并每隔30分钟解雇一次cron作业。

假设用户A在2014/8/13 18:39:00对用户B发表评论,它会在数据库库的评论表中有一行,如

comment_user   user_received        comment_send_time                  view_or_not(y/n)  email(y/n)
user_A           user_B             2014/8/13 18:39:00                    n                 n

在我的玉米作业php脚本中,我会检查interval between the current time and the comment_send_time is greater than 30mins是否view=n email=n并且cron作业将向user_B发送新评论的电子邮件通知,成功发送电子邮件后,将电子邮件更新为n,以防止发送冗余电子邮件通知。

我担心的是,如果我每30分钟运行一次cron作业,是否会损害服务器性能,并且cron作业将成为处理此任务的正确方法以及其他选项

1 个答案:

答案 0 :(得分:1)

就个人而言,我已经将作业设置为每分钟运行并让脚本运行一个非常轻量级的SQL查询来检查新警报。

如果您的脚本很重并且运行时间超过1分钟,那么请将其缩小或进行性能调整。

要直接回答您的问题,是的,它会影响效果。但是,如果您有一个轻量级脚本,则该命中率可以忽略不计。如果您每分钟发送数千封电子邮件,则应该将该设备扩展到自己的服务器。此时,您应该赚足够的钱来支持其他服务器,或者您需要重新考虑提醒用户的策略。如果您需要开始扩展,那么请开始查看消息队列,以及RabbitMQ或Laravel等任务/工作队列