使用cron设置提醒系统

时间:2019-01-18 16:41:50

标签: php mysql pdo cron daemon

我有具体的日期接受用户采访。这是我的桌子:

interviews
-------------
user_id
interview_date
interview_time
reminder_time

提醒时间可以是1小时,5小时,1天,3天,7天和14天。

如果面试即将进行,我将如何设置cron作业或检查数据库的内容并发出提醒?

例如,如果访问距离访谈有5个小时,则数据库将向该用户发送一封电子邮件提醒。

我应该使用cron吗?守护进程?我不喜欢守护程序,只是在我搜索它时才看到它。还是我应该使用其他东西?这是一个没有框架的纯/本地PHP应用程序。

这是我到目前为止所拥有的:

$check = $db->prepare("SELECT * FROM interviews");

if(interview is coming up) {
    sendEmail();
}

但是我对于在哪里以及如何搜索这些采访并发出提醒感到困惑。

如果我搜索所有采访,那将对服务器造成巨大负担。

感谢您的所有帮助和建议!

1 个答案:

答案 0 :(得分:1)

除非您希望您的PHP进程永久运行,否则将需要某种常规的调度程序,例如cron。这样可以将您的代码设置为每分钟,每小时或任何有意义的间隔运行一次。

通常每五到十五分钟就足以检查即将发生的事件并为它们发出通知。

请确保在数据库中设置一个标志,以告知是否已经通知了某些内容,以便在脚本崩溃时需要重新运行,可以在脚本停下来的地方重新获取。