如何每隔5秒使用当前时间戳更新我的数据库

时间:2013-08-28 11:25:09

标签: php jquery ajax html5

我有一个数据库名称用户也有一个last_seen字段。我想用每5秒用当前时间戳更新这个字段。

3 个答案:

答案 0 :(得分:1)

不要,只是不要。您可以使用任何Javascript框架通过定期XHR回调轻松完成此操作,但这意味着如果50个用户打开您的站点,您将每秒执行10个请求,并且您的托管服务商将关闭您产生荒谬的服务器负载。如果他们不这样做,您将因为SQL数据库锁定而使您的网站变得非常慢,或者甚至可能导致您的整个网站在每次请求时超时。

只需记录最后一次网页浏览,并更新其他回调中的时间戳(如果有)。如果用户正在查看的页面上没有任何其他回调,那么无论如何他都没有合理的目的知道他何时仍然打开它,因为他正在查看的信息无论如何都是庄严过时的。

答案 1 :(得分:0)

您可以每隔5秒进行一次AJAX调用,该用户处于活动状态。但是,它会为您的数据库和网络服务器增加大量流量。

如果它是一些内部应用程序,你知道负载它可能没问题。你还可以尝试将last_seen连接到某种缓冲区中的内存,如果60秒内没有更多的请求,那么它将被写入磁盘

答案 2 :(得分:0)

尝试mysql事件:

http://dev.mysql.com/doc/refman/5.1/en/create-event.html

CREATE EVENT myevent
    ON SCHEDULE EVERY 5 SECOND
    DO
      UPDATE myschema.mytable SET mycol = mycol + 1;