【问题标题】:Ways to prevent multiple email notification with php&mysql使用 php&mysql 防止多个电子邮件通知的方法
【发布时间】:2012-10-18 04:57:17
【问题描述】:

我的第一篇文章,但到目前为止,我从 stackoverflow 中得到了很多很棒的答案和提示。这是一个非常接近的电话-> How does facebook, gmail send the real time notification? 但不完全是,所以让我们一起集思广益。

当网站发生更改时,我有带有邮件通知的 CMS 系统。一切都很好,但是如果有人再次快速更改以修复错字,我想防止多次通知。显然使用 php mail()。

我有两种方法,一种简单,一种.... 可以说,相当沉重... 咳嗽。第三个的灵感来自Implementing Email Notification,但我真的不喜欢一次发送一堆电子邮件。

  1. 使用时间戳检查是否在过去 5 分钟的“假设”中进行了其他更改。

  2. 记录最后一次更改,并将其与新更改进行比较。同时可能对备份有用,因为我必须将更改保存在某处,但是文本可能很长并且进行 sql 搜索会很痛苦。不会吗?

  3. 使用 cron 每 x 分钟发送一次更改...如果您认为这是一个合适的解决方案,请说服我。

您有什么想法、意见或建议吗?期待您的意见,既然我现在注册了,我会尽我所能提供帮助。

干杯,大家 呵呵

【问题讨论】:

    标签: php mysql email-notifications


    【解决方案1】:

    关于 cron 作业,这始终是一个不错的选择,因为它消除了 php 处理中检查时间、数据库、额外文件等的部分负担。但只有当你真的有它的用途时才有意义,例如,如果您有 10 个用户,那可能是矫枉过正。如果您有 1000 个,那么您只需要优化邮寄过程本身,但这仍然是一个不错的选择。

    关于时间戳,不断检查数据库以查找更改对于系统来说非常耗时并且会使数据库过载。除非您有专门的表格,只用于更改帖子,否则系统没有太多工作,而且您可以每隔几次使用信息就清理过时的记录。

    如果您有很多用户,那么记录帖子本身的最后更改并不断与新/旧版本进行比较可能会让系统不堪重负。

    因此,我将使用一个专门用于更改帖子的表格,其中包含 id_post、timestamp_of_the_change 和 mail_sent 之类的内容。然后在对该表进行任何更新后,我将检查帖子是否在最后一分钟左右被修改,如果发生这种情况,我将更新时间戳但不会发送新邮件,除非最后一个发送过程邮件失败,这就是我将在那里使用的第三个字段。

    再见

    【讨论】:

    • 感谢您的意见,我会考虑您的意见。
    猜你喜欢
    • 2013-08-09
    • 2018-10-06
    • 2011-10-07
    • 2011-04-06
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    • 2011-07-23
    • 2011-11-04
    相关资源
    最近更新 更多