即使用户不在页面上,也要跟踪计时器

时间:2016-04-07 12:31:28

标签: javascript php mysql timer

目前,我有一个简单的注册和登录PHP系统, 我想要实现一个用户可以设置用于个人用途的小计时器,我想知道他们是否可以输入12小时之类的东西然后计时器会倒计时直到计时器用完它们再次启动它,我我以为计时器可以继续运行,即使他们没有加载页面,所以我认为它需要存储在mySQL数据库中,我只是遇到了很大困难,我希望我能做到这一点。不要求太多。

感谢您提前抽出时间。

1 个答案:

答案 0 :(得分:0)

以下可能会有效,但需要一个具有crontab的系统(可以在带有任务调度程序的窗口中工作,但语法会有所不同)。

创建一个表格:

UserTimers
----------
user_id | timer_id | trigger_time

当用户创建计时器时,将其添加到此表中。

创建一个可执行的PHP脚本(假设它存储在/etc/cronmgr

#!/usr/bin/php
<?php
$rows = mysqli_query("SELECT * FROM UserTimers WHERE trigger_time <= NOW()"); // Timer should have been triggered by now
//Get all rows and do whatever you need to do with them
mysqli_query("DELETE FROM UserTimers WHERE trigger_time <= NOW()");

在crontab中添加以下行:

*/2 * * * * /etc/cronmgr

这将每2分钟运行一次cronmgr脚本(如果您认为服务器负载过多,请进行调整)。

然而,用户的计时器可能会关闭X分钟(其中X是间隔,即本例中为2),因此如果用户要求1分钟的计时器,则不会工作好。