【问题标题】:reminder system in PHPPHP中的提醒系统
【发布时间】:2012-02-02 23:00:09
【问题描述】:

我打算在周末用 PHP 创建一个小型提醒系统。计划是

  1. 用户注册。
  2. 用户使用简单的表单创建提醒和待办事项,输入提醒名称、描述和时间等详细信息。此信息存储在 MySQL 数据库中。
  3. 脚本会检查数据库中是否有应发送的提醒,并将它们发送到用户的电子邮件或其他操作。

处理检查/发送脚本的最佳方法是什么,或者有人可以提出其他想法吗?谢谢。

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    您将在您的服务器上运行一个每 x 分钟运行一次的 cronjob。每次运行时,它都会检查数据库以获取当前时间的提醒,然后通过电子邮件向发出提醒的用户发送电子邮件。

    【讨论】:

    • 建议您在此实现中也构建一个队列系统,这样您每分钟只发送 100 个左右,以防止在您的用户群增长到较大规模时出现严重问题。所以你的 cron 会检查通知并将它们添加到队列表中。然后同一个 cron 也可以检查队列系统并抓取队列中的下 100 个发送并解雇它们。
    • 那么,如果我将 LIMIT 100 添加到我的 SQL 语句的末尾,这会像队列系统还是限制系统一样工作?
    • 这将作为一个限制系统。我假设您的意思是也限制 100 个用户发送电子邮件。如果是这种情况,那么#101+ 的用户将永远不会收到电子邮件。相反,您需要将所有用户添加到队列(即另一个表)。 cron 作业有两个任务:将所有用户添加到队列中,然后向队列中最老的 100 个用户发送提醒消息。然后从队列中删除这 100 个。
    • 技术上你可以,但你会使用队列系统来实现可扩展性,除非你不关心。考虑一下如果您的用户通知系统有数百万行要评估会发生什么。您可能会单独限制该评估,并且无论通知系统的操作如何,您的队列系统作为一个独立的 cron 作业仍然可以运行。这真的是你的电话 - 你知道你的系统,我只是转述我们如何在我们公司设置这种东西。
    【解决方案2】:

    如果您的服务器支持 cron 作业,请使用它们。

    1. 创建您的 php 脚本来检查,然后将电子邮件发送给相应的用户。
    2. 创建一个 cron 作业以使用如下语法运行该脚本:

      php -q /home/serverpath/script/file.php

    CPanel 确实有一个用于 cronjobs 的部分

    【讨论】:

      猜你喜欢
      • 2022-01-17
      • 2015-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-02
      • 1970-01-01
      • 2012-08-29
      • 2015-09-23
      相关资源
      最近更新 更多